forked from qt-creator/qt-creator
Clang: Fix crash after cancelled completion request
Amends
commit 755de9f86a
Editor: delete processor after canceling
Ensure to update the bookkeeping in BackendReceiver on
CodeAssistantPrivate::cancelCurrentRequest()
as otherwise we run into a use-after-free.
Change-Id: Ic5abdc9d743dc0b76eb050a9e3e00f85d2c5bc96
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -84,6 +84,18 @@ void BackendReceiver::addExpectedCompletionsMessage(
|
||||
m_assistProcessorsTable.insert(ticket, processor);
|
||||
}
|
||||
|
||||
void BackendReceiver::cancelProcessor(TextEditor::IAssistProcessor *processor)
|
||||
{
|
||||
for (auto it = m_assistProcessorsTable.cbegin(), end = m_assistProcessorsTable.cend();
|
||||
it != end; ++it)
|
||||
{
|
||||
if (it.value() == processor) {
|
||||
m_assistProcessorsTable.erase(it);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BackendReceiver::deleteProcessorsOfEditorWidget(TextEditor::TextEditorWidget *textEditorWidget)
|
||||
{
|
||||
QList<quint64> toRemove;
|
||||
|
||||
Reference in New Issue
Block a user