diff options
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlobjectcreator.cpp | 6 | ||||
-rw-r--r-- | src/qml/qml/qqmlobjectcreator_p.h | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index d373c00574..6336835844 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -1050,7 +1050,7 @@ void QQmlEnginePrivate::registerFinalizeCallback(QObject *obj, int index) if (activeVME) { activeVME->finalizeCallbacks.append(qMakePair(QPointer<QObject>(obj), index)); } else if (activeObjectCreator) { - activeObjectCreator->finalizeCallbacks.append(qMakePair(QPointer<QObject>(obj), index)); + activeObjectCreator->finalizeCallbacks()->append(qMakePair(QPointer<QObject>(obj), index)); } else { void *args[] = { 0 }; QMetaObject::metacall(obj, QMetaObject::InvokeMetaMethod, index, args); diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index f11b383653..cce7ccf77e 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -1089,15 +1089,15 @@ QQmlContextData *QQmlObjectCreator::finalize(QQmlInstantiationInterrupt &interru { QQmlTrace trace("VME Finalize Callbacks"); - for (int ii = 0; ii < finalizeCallbacks.count(); ++ii) { - QQmlEnginePrivate::FinalizeCallback callback = finalizeCallbacks.at(ii); + for (int ii = 0; ii < sharedState->finalizeCallbacks.count(); ++ii) { + QQmlEnginePrivate::FinalizeCallback callback = sharedState->finalizeCallbacks.at(ii); QObject *obj = callback.first; if (obj) { void *args[] = { 0 }; QMetaObject::metacall(obj, QMetaObject::InvokeMetaMethod, callback.second, args); } } - finalizeCallbacks.clear(); + sharedState->finalizeCallbacks.clear(); } { diff --git a/src/qml/qml/qqmlobjectcreator_p.h b/src/qml/qml/qqmlobjectcreator_p.h index c48d7d3c05..31fbbbd380 100644 --- a/src/qml/qml/qqmlobjectcreator_p.h +++ b/src/qml/qml/qqmlobjectcreator_p.h @@ -67,7 +67,7 @@ public: QQmlComponentAttached **componentAttachment() { return &sharedState->componentAttached; } - QList<QQmlEnginePrivate::FinalizeCallback> finalizeCallbacks; + QList<QQmlEnginePrivate::FinalizeCallback> *finalizeCallbacks() { return &sharedState->finalizeCallbacks; } QList<QQmlError> errors; @@ -96,6 +96,7 @@ private: QFiniteStack<QQmlAbstractBinding*> allCreatedBindings; QFiniteStack<QQmlParserStatus*> allParserStatusCallbacks; QQmlComponentAttached *componentAttached; + QList<QQmlEnginePrivate::FinalizeCallback> finalizeCallbacks; }; QQmlEngine *engine; |