diff options
Diffstat (limited to 'src/declarative/qml/qdeclarativeworkerscript.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativeworkerscript.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index ad3ca58c6c..fd2b924f65 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -477,8 +477,6 @@ QDeclarativeWorkerScriptEngine::QDeclarativeWorkerScriptEngine(QDeclarativeEngin QDeclarativeWorkerScriptEngine::~QDeclarativeWorkerScriptEngine() { d->m_lock.lock(); - qDeleteAll(d->workers); - d->workers.clear(); QCoreApplication::postEvent(d, new QEvent((QEvent::Type)QDeclarativeWorkerScriptEnginePrivate::WorkerDestroyEvent)); d->m_lock.unlock(); @@ -530,7 +528,7 @@ void QDeclarativeWorkerScriptEngine::run() { d->m_lock.lock(); - v8::Isolate *isolate = v8::Isolate::New(); + v8::Isolate *isolate = v8::Isolate::New(); isolate->Enter(); d->workerEngine = new QDeclarativeWorkerScriptEnginePrivate::WorkerEngine(d); @@ -542,6 +540,9 @@ void QDeclarativeWorkerScriptEngine::run() exec(); + qDeleteAll(d->workers); + d->workers.clear(); + delete d->workerEngine; d->workerEngine = 0; isolate->Exit(); |