Clang: Cancel tooltip future on backend restart

Change-Id: Icbc461aa765c47ae0dd708a731b4d132bfa0f7d8
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-01-18 12:16:43 +01:00
parent 97c2bcf8d2
commit 56157f739d
2 changed files with 9 additions and 2 deletions

View File

@@ -151,7 +151,7 @@ void BackendReceiver::reset()
qDeleteAll(m_assistProcessorsTable.begin(), m_assistProcessorsTable.end());
m_assistProcessorsTable.clear();
// Clean up futures for references
// Clean up futures for references; TODO: Remove duplication
for (ReferencesEntry &entry : m_referencesTable) {
entry.futureInterface.cancel();
entry.futureInterface.reportFinished();
@@ -162,6 +162,11 @@ void BackendReceiver::reset()
futureInterface.reportFinished();
}
m_followTable.clear();
for (QFutureInterface<CppTools::ToolTipInfo> &futureInterface : m_toolTipsTable) {
futureInterface.cancel();
futureInterface.reportFinished();
}
m_toolTipsTable.clear();
}
void BackendReceiver::alive()

View File

@@ -144,8 +144,10 @@ void ClangHoverHandler::identifyMatch(TextEditorWidget *editorWidget,
void ClangHoverHandler::abort()
{
if (m_futureWatcher)
if (m_futureWatcher) {
m_futureWatcher->cancel();
m_futureWatcher.reset();
}
}
#define RETURN_TEXT_FOR_CASE(enumValue) case TextEditor::HelpItem::enumValue: return #enumValue