From 8ea3763a22d4ae114eee0063ef1c3ce31ac1b44d Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 3 Jun 2016 12:57:25 +0200 Subject: Use automatic refcounting for the compilation unit in QQmlComponentPrivate and the incubator Change-Id: I70d609ce282a537b67a5e7c01c12d9ce65995133 Reviewed-by: Lars Knoll --- src/qml/qml/qqmlincubator.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/qml/qml/qqmlincubator.cpp') diff --git a/src/qml/qml/qqmlincubator.cpp b/src/qml/qml/qqmlincubator.cpp index c52b5014ca..7494d6a633 100644 --- a/src/qml/qml/qqmlincubator.cpp +++ b/src/qml/qml/qqmlincubator.cpp @@ -131,7 +131,7 @@ QQmlIncubationController *QQmlEngine::incubationController() const QQmlIncubatorPrivate::QQmlIncubatorPrivate(QQmlIncubator *q, QQmlIncubator::IncubationMode m) : q(q), status(QQmlIncubator::Null), mode(m), isAsynchronous(false), progress(Execute), - result(0), enginePriv(0), compilationUnit(0), waitingOnMe(0) + result(0), enginePriv(0), waitingOnMe(0) { } @@ -142,18 +142,13 @@ QQmlIncubatorPrivate::~QQmlIncubatorPrivate() void QQmlIncubatorPrivate::clear() { + compilationUnit = nullptr; if (next.isInList()) { next.remove(); - Q_ASSERT(compilationUnit); - compilationUnit->release(); - compilationUnit = 0; enginePriv->incubatorCount--; QQmlIncubationController *controller = enginePriv->incubationController; if (controller) controller->incubatingObjectCountChanged(enginePriv->incubatorCount); - } else if (compilationUnit) { - compilationUnit->release(); - compilationUnit = 0; } enginePriv = 0; if (!rootContext.isNull()) { @@ -570,7 +565,7 @@ void QQmlIncubator::clear() d->clear(); - Q_ASSERT(d->compilationUnit == 0); + Q_ASSERT(d->compilationUnit.isNull()); Q_ASSERT(d->waitingOnMe.data() == 0); Q_ASSERT(d->waitingFor.isEmpty()); -- cgit v1.2.3