summaryrefslogtreecommitdiff
path: root/src/declarative/qml/qdeclarativeworkerscript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qdeclarativeworkerscript.cpp')
-rw-r--r--src/declarative/qml/qdeclarativeworkerscript.cpp7
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();