aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2012-08-14 14:19:09 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-31 14:33:01 +0200
commit5e428bb926e0ad4df8ddd672d38b73f5859cbfd5 (patch)
tree1dd658c50d171aeafdcbcff76b7c48a0c709c98b /src
parent04774bb14c81688f86a2b31b8624bde8ebf59062 (diff)
Delete weak JS objects on exit right away
This reduces memory leaks on exit when the engine is destroyed after exec() has finished. Change-Id: I917d103966d55b4dd3ba4e986ff902e29d8fb0ac Reviewed-by: Chris Adams <christopher.adams@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/qml/qml/v8/qv8qobjectwrapper.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/qml/qml/v8/qv8qobjectwrapper.cpp b/src/qml/qml/v8/qv8qobjectwrapper.cpp
index ee80dded34..d6e0190a9e 100644
--- a/src/qml/qml/v8/qv8qobjectwrapper.cpp
+++ b/src/qml/qml/v8/qv8qobjectwrapper.cpp
@@ -1178,7 +1178,10 @@ bool QV8QObjectWrapper::deleteWeakQObject(QV8QObjectResource *resource, bool cal
if (ddata->ownContext && ddata->context)
ddata->context->emitDestruction();
ddata->isQueuedForDeletion = true;
- object->deleteLater();
+ if (calledFromEngineDtor)
+ delete object;
+ else
+ object->deleteLater();
}
}
}