diff options
author | Liang Jian <jianliang79@gmail.com> | 2014-03-14 09:42:48 +0800 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-14 10:45:53 +0100 |
commit | 99308192510bbfd7c508a2aabcbef18445c61584 (patch) | |
tree | 82ae0e3f8913157832c0ccc4c11891a1c1b5afca /src/qml/types | |
parent | 5b0935a10599fbdf9c1df383044ba1e59eec0058 (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')
-rw-r--r-- | src/qml/types/qquickworkerscript.cpp | 6 |
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); |