aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qquickworkerscript.cpp
diff options
context:
space:
mode:
authorLiang Jian <jianliang79@gmail.com>2014-03-14 09:42:48 +0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-14 10:45:53 +0100
commit99308192510bbfd7c508a2aabcbef18445c61584 (patch)
tree82ae0e3f8913157832c0ccc4c11891a1c1b5afca /src/qml/types/qquickworkerscript.cpp
parent5b0935a10599fbdf9c1df383044ba1e59eec0058 (diff)
Fix WorkerScript object leak
Delete WorkerScrip object in WorkerRemoveEvent::WorkerRemove event Change-Id: I1a304838e4a43577a5781216e32610ea36c5a7fd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/types/qquickworkerscript.cpp')
-rw-r--r--src/qml/types/qquickworkerscript.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/types/qquickworkerscript.cpp b/src/qml/types/qquickworkerscript.cpp
index da34101c36..e8fe75bee1 100644
--- a/src/qml/types/qquickworkerscript.cpp
+++ b/src/qml/types/qquickworkerscript.cpp
@@ -340,7 +340,11 @@ bool QQuickWorkerScriptEnginePrivate::event(QEvent *event)
return true;
} else if (event->type() == (QEvent::Type)WorkerRemoveEvent::WorkerRemove) {
WorkerRemoveEvent *workerEvent = static_cast<WorkerRemoveEvent *>(event);
- workers.remove(workerEvent->workerId());
+ QHash<int, WorkerScript *>::iterator itr = workers.find(workerEvent->workerId());
+ if (itr != workers.end()) {
+ delete itr.value();
+ workers.erase(itr);
+ }
return true;
} else {
return QObject::event(event);