summaryrefslogtreecommitdiff
path: root/src/plugins/languageclient/languageclientmanager.cpp
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2018-10-26 11:02:33 +0200
committerChristian Stenger <christian.stenger@qt.io>2018-11-05 09:33:48 +0000
commit88a6276551cfdf04a248388759a361fc8aace49e (patch)
treed3f718cedccc6be9b7bc9c441a1452edb071a729 /src/plugins/languageclient/languageclientmanager.cpp
parent02760eafc803dd47050e6e4e9d2b42d7d1850e3b (diff)
downloadqt-creator-88a6276551cfdf04a248388759a361fc8aace49e.tar.gz
LSP: Avoid crash in shutdown
Having a corrupt language server might end up in a double delete when closing the client. Change-Id: I23e02d666d6c070a9f4b33605782fe875c5cabe6 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientmanager.cpp')
-rw-r--r--src/plugins/languageclient/languageclientmanager.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index a94d2f98cd..0852904690 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -205,6 +205,7 @@ void LanguageClientManager::reportFinished(const MessageId &id, BaseClient *byCl
void LanguageClientManager::deleteClient(BaseClient *client)
{
QTC_ASSERT(client, return);
+ client->disconnect(managerInstance);
managerInstance->removeMarks(client->id());
managerInstance->m_clients.removeAll(client);
delete client;