From 5cbe7d8819f21d7c427655736cba54fbeeef04a6 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 9 Dec 2024 12:27:25 +0100 Subject: [PATCH] ClangCodeModel: Fix potential crash when canceling indexing Change-Id: I9fe33f037fbb8b02a2890ec34c3a4f3584c4615e Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdclient.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 8238ebf762e..29aa0b43e7b 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -21,17 +21,13 @@ #include #include #include -#include #include #include -#include #include #include #include #include #include -#include -#include #include #include #include @@ -45,16 +41,12 @@ #include #include #include -#include +#include #include #include #include #include #include -#include -#include -#include -#include #include #include #include @@ -62,9 +54,7 @@ #include #include #include -#include #include -#include #include #include @@ -462,8 +452,10 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c progressManager()->setTitleForToken( indexingToken(), project ? Tr::tr("Indexing %1 with clangd").arg(project->displayName()) : Tr::tr("Indexing session with clangd")); - progressManager()->setCancelHandlerForToken(indexingToken(), [this, project]() { - CppEditor::ClangdProjectSettings projectSettings(project); + progressManager()->setCancelHandlerForToken(indexingToken(), [this, p = QPointer(project)]() { + if (!p) + return; + CppEditor::ClangdProjectSettings projectSettings(p); projectSettings.blockIndexing(); progressManager()->endProgressReport(indexingToken()); });