aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/jsruntime/qv4qobjectwrapper.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
index 67801f39b7..f611be2965 100644
--- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
@@ -1008,7 +1008,10 @@ namespace {
void QObjectWrapper::destroy(Managed *that)
{
QObjectWrapper *This = static_cast<QObjectWrapper*>(that);
- QPointer<QObject> &object = This->m_object;
+ QPointer<QObject> object = This->m_object;
+ ExecutionEngine *engine = This->engine();
+ This->~QObjectWrapper();
+ This = 0;
if (!object)
return;
@@ -1020,9 +1023,7 @@ void QObjectWrapper::destroy(Managed *that)
return;
QObjectDeleter *deleter = new QObjectDeleter(object);
- This->engine()->memoryManager->registerDeletable(deleter);
-
- This->~QObjectWrapper();
+ engine->memoryManager->registerDeletable(deleter);
}