From 168e89e0a2bd475a4f4b7bf4aa6f207466e8a9bd Mon Sep 17 00:00:00 2001 From: Hannes Domani Date: Fri, 22 Dec 2017 16:56:00 +0100 Subject: CppTools: Fix memory leak of QFutureWatcher when canceled Change-Id: Ia9cd428e3bed193167903b6ffa080e4886193789 Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cppmodelmanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 continue; QFutureWatcher *watcher = new QFutureWatcher(); - connect(watcher, &QFutureWatcher::canceled, this, [this, project]() { + connect(watcher, &QFutureWatcher::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::finished, this, [watcher]() { watcher->deleteLater(); -- cgit v1.2.3