CppEditor: Cancel runner in ~CppUseSelectionsUpdater

...otherwise an already destructed QTextDocument might be accessed in
the ClangCodeModel::Internal::IpcReceiver::references.

Task-number: QTCREATORBUG-18459
Change-Id: I1868b2fd3a64341794f83eea6c4eeb7c2c1af812
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-06-27 09:21:46 +02:00
parent 22829c1906
commit d870bab95c
4 changed files with 11 additions and 3 deletions

View File

@@ -248,9 +248,9 @@ void IpcReceiver::references(const ReferencesMessage &message)
QTC_CHECK(futureInterface != QFutureInterface<CppTools::CursorInfo>());
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();
}