summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine.cpp
diff options
context:
space:
mode:
authorMorten Engvoldsen <morten.engvoldsen@nokia.com>2011-02-23 20:32:21 (GMT)
committerMorten Engvoldsen <morten.engvoldsen@nokia.com>2011-02-23 20:32:21 (GMT)
commitc881e33e7e510204fabd061dac08a00b10b432fb (patch)
treeb5a5210eef8d309a17aca7d20b457879b584913f /src/script/api/qscriptengine.cpp
parent309c48a70b46678ef92da441fcc2dc96ceb8fcf3 (diff)
parent3c982b5d214cc7a37ace1d956ac8fb0b9a281722 (diff)
downloadQt-c881e33e7e510204fabd061dac08a00b10b432fb.zip
Qt-c881e33e7e510204fabd061dac08a00b10b432fb.tar.gz
Qt-c881e33e7e510204fabd061dac08a00b10b432fb.tar.bz2
Merge branch '4.7' into mimir
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r--src/script/api/qscriptengine.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index 128e9c3..54039c0 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -1022,6 +1022,7 @@ QScriptEnginePrivate::~QScriptEnginePrivate()
while (!ownedAgents.isEmpty())
delete ownedAgents.takeFirst();
+ detachAllRegisteredScriptPrograms();
detachAllRegisteredScriptValues();
detachAllRegisteredScriptStrings();
qDeleteAll(m_qobjectData);
@@ -1576,6 +1577,14 @@ bool QScriptEnginePrivate::scriptDisconnect(JSC::JSValue signal, JSC::JSValue re
#endif
+void QScriptEnginePrivate::detachAllRegisteredScriptPrograms()
+{
+ QSet<QScriptProgramPrivate*>::const_iterator it;
+ for (it = registeredScriptPrograms.constBegin(); it != registeredScriptPrograms.constEnd(); ++it)
+ (*it)->detachFromEngine();
+ registeredScriptPrograms.clear();
+}
+
void QScriptEnginePrivate::detachAllRegisteredScriptValues()
{
QScriptValuePrivate *it;