summaryrefslogtreecommitdiffstats
path: root/src/script/api/qscriptengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r--src/script/api/qscriptengine.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index c69f1ee..c88f464 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -811,8 +811,8 @@ QScriptEnginePrivate::QScriptEnginePrivate() : idGenerator(1)
JSC::initializeThreading(); // ### hmmm
- JSC::JSGlobalData *data = JSC::JSGlobalData::create().releaseRef();
- globalObject = new (data)QScript::GlobalObject(this);
+ globalData = JSC::JSGlobalData::create().releaseRef();
+ globalObject = new (globalData)QScript::GlobalObject(this);
JSC::ExecState* exec = globalObject->globalExec();
@@ -847,6 +847,10 @@ QScriptEnginePrivate::~QScriptEnginePrivate()
detachAllRegisteredScriptValues();
qDeleteAll(m_qobjectData);
qDeleteAll(m_typeInfos);
+ qDeleteAll(contextForFrameHash);
+ JSC::JSLock lock(false);
+ globalData->heap.destroy();
+ globalData->deref();
}
QScriptValue QScriptEnginePrivate::scriptValueFromJSCValue(JSC::JSValue value)