aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlincubator.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2016-06-03 12:57:25 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2016-06-03 13:24:12 +0000
commit8ea3763a22d4ae114eee0063ef1c3ce31ac1b44d (patch)
tree1563ad970031bf3b202ea1c3e2946ac7c3137995 /src/qml/qml/qqmlincubator.cpp
parente2fd32cf30d0b5e947ad6c068781507988528c64 (diff)
Use automatic refcounting for the compilation unit in QQmlComponentPrivate and the incubator
Change-Id: I70d609ce282a537b67a5e7c01c12d9ce65995133 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlincubator.cpp')
-rw-r--r--src/qml/qml/qqmlincubator.cpp11
1 files changed, 3 insertions, 8 deletions
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());