diff options
author | Hannes Domani <ssbssa@yahoo.de> | 2017-12-22 16:56:00 +0100 |
---|---|---|
committer | Hannes Domani <ssbssa@yahoo.de> | 2018-06-08 15:48:21 +0000 |
commit | 168e89e0a2bd475a4f4b7bf4aa6f207466e8a9bd (patch) | |
tree | b41604dfcc389e4d7d27727d459df5b4384be825 | |
parent | 3f356f31bc311e5eeacee7e1ac01ed7d2f9943de (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.cpp | 3 |
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(); |