From 257df2e4b8ca6d3e3407e0f4d5ee1ecbde965652 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 5 Dec 2018 07:49:05 +0100 Subject: LSP: fix crash after last server restart attempt The client got indirectly deleted from the manager while still in the parsing output function during the last restart attempt. Fixing it by freeing the client via deleteLater. Change-Id: I2539a8b96b5568dc2ae15a6bfe4f2ab02c280f67 Fixes: QTCREATORBUG-21635 Reviewed-by: Christian Stenger --- src/plugins/languageclient/languageclientmanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index bae73aec0b..a282282f6d 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -205,10 +205,10 @@ void LanguageClientManager::reportFinished(const MessageId &id, BaseClient *byCl void LanguageClientManager::deleteClient(BaseClient *client) { QTC_ASSERT(client, return); - client->disconnect(managerInstance); + client->disconnect(); managerInstance->removeMarks(client->id()); managerInstance->m_clients.removeAll(client); - delete client; + client->deleteLater(); } void LanguageClientManager::shutdown() -- cgit v1.2.3