aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Domani <ssbssa@yahoo.de>2017-12-22 16:56:00 +0100
committerHannes Domani <ssbssa@yahoo.de>2018-06-08 15:48:21 +0000
commit168e89e0a2bd475a4f4b7bf4aa6f207466e8a9bd (patch)
treeb41604dfcc389e4d7d27727d459df5b4384be825
parent3f356f31bc311e5eeacee7e1ac01ed7d2f9943de (diff)
CppTools: Fix memory leak of QFutureWatcher when canceled
Change-Id: Ia9cd428e3bed193167903b6ffa080e4886193789 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index eb02ac8892..d310f15f1d 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -956,9 +956,10 @@ void CppModelManager::watchForCanceledProjectIndexer(const QVector<QFuture<void>
continue;
QFutureWatcher<void> *watcher = new QFutureWatcher<void>();
- connect(watcher, &QFutureWatcher<void>::canceled, this, [this, project]() {
+ connect(watcher, &QFutureWatcher<void>::canceled, this, [this, project, watcher]() {
if (d->m_projectToIndexerCanceled.contains(project)) // Project not yet removed
d->m_projectToIndexerCanceled.insert(project, true);
+ watcher->deleteLater();
});
connect(watcher, &QFutureWatcher<void>::finished, this, [watcher]() {
watcher->deleteLater();