From b7abde11a07f9ea57da97d4acbd7518b66b8e2f1 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 19 Jan 2024 13:19:02 +0100 Subject: [PATCH] LanguageClient: Make sure to untrack deleted documents This is a safety net for manually opened documents (not opened via the EditorManager) so that all pending pointers to those documents are removed. Change-Id: I2527db1a5bab387b9f49255ebcde9232afd5a93c Reviewed-by: Artem Sokolovskii Reviewed-by: Christian Stenger --- src/plugins/languageclient/client.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 41efcb5672c..9eaf6a5672a 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -618,6 +618,13 @@ void Client::openDocument(TextEditor::TextDocument *document) if (d->m_openedDocument.contains(document) || !isSupportedDocument(document)) return; + connect(document, &TextDocument::destroyed, this, [this, document] { + d->m_postponedDocuments.remove(document); + d->m_openedDocument.remove(document); + d->m_documentsToUpdate.erase(document); + d->m_resetAssistProvider.remove(document); + }); + if (d->m_state != Initialized) { d->m_postponedDocuments << document; return;