diff options
author | Kent Hansen <khansen@trolltech.com> | 2009-07-15 12:56:03 (GMT) |
---|---|---|
committer | Kent Hansen <khansen@trolltech.com> | 2009-07-15 12:56:03 (GMT) |
commit | 422e26fc3e51e936fc3c00c491b9b512e82236f5 (patch) | |
tree | f9a5bcc5ee9a30d588bed4c9cde7d30bc412fcf0 /src/script/api/qscriptengine.cpp | |
parent | 3983c9f396ca642caec2387bfe76fa6a9ca233f3 (diff) | |
download | Qt-422e26fc3e51e936fc3c00c491b9b512e82236f5.zip Qt-422e26fc3e51e936fc3c00c491b9b512e82236f5.tar.gz Qt-422e26fc3e51e936fc3c00c491b9b512e82236f5.tar.bz2 |
fix some memory leaks
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r-- | src/script/api/qscriptengine.cpp | 8 |
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) |