diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp index 8dd45907de3..5ff5b1aa7e5 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp @@ -248,9 +248,9 @@ void IpcReceiver::references(const ReferencesMessage &message) QTC_CHECK(futureInterface != QFutureInterface()); if (futureInterface.isCanceled()) - return; // A new request was issued making this one outdated. + return; // Editor document closed or a new request was issued making this result outdated. - QTC_CHECK(entry.textDocument); + QTC_ASSERT(entry.textDocument, return); futureInterface.reportResult(toCursorInfo(*entry.textDocument, message)); futureInterface.reportFinished(); } diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.h b/src/plugins/clangcodemodel/clangbackendipcintegration.h index e3842b2a26d..57a07e8097d 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.h +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.h @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -102,7 +103,7 @@ private: : futureInterface(futureInterface) , textDocument(textDocument) {} QFutureInterface futureInterface; - QTextDocument *textDocument = nullptr; + QPointer textDocument; }; QHash m_referencesTable; }; diff --git a/src/plugins/cppeditor/cppuseselectionsupdater.cpp b/src/plugins/cppeditor/cppuseselectionsupdater.cpp index 217a58fa1d2..47a036c7b94 100644 --- a/src/plugins/cppeditor/cppuseselectionsupdater.cpp +++ b/src/plugins/cppeditor/cppuseselectionsupdater.cpp @@ -49,6 +49,12 @@ CppUseSelectionsUpdater::CppUseSelectionsUpdater(TextEditor::TextEditorWidget *e connect(&m_timer, &QTimer::timeout, this, [this]() { update(); }); } +CppUseSelectionsUpdater::~CppUseSelectionsUpdater() +{ + if (m_runnerWatcher) + m_runnerWatcher->cancel(); +} + void CppUseSelectionsUpdater::scheduleUpdate() { m_timer.start(); diff --git a/src/plugins/cppeditor/cppuseselectionsupdater.h b/src/plugins/cppeditor/cppuseselectionsupdater.h index b2474362850..478a816f980 100644 --- a/src/plugins/cppeditor/cppuseselectionsupdater.h +++ b/src/plugins/cppeditor/cppuseselectionsupdater.h @@ -44,6 +44,7 @@ class CppUseSelectionsUpdater : public QObject public: explicit CppUseSelectionsUpdater(TextEditor::TextEditorWidget *editorWidget); + ~CppUseSelectionsUpdater(); void scheduleUpdate(); void abortSchedule();