From 3d1efce0a437118671fc0d3b3a03df29bc4f0726 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 5 Mar 2019 12:56:53 +0100 Subject: [PATCH] LanguageClient: Fix possible crash on shutdown If a shutdown is in progress we need an immediately delete of the client to avoid accessing an already deleted TextMarkRegistry instance when deleteLater() is triggered too late. Change-Id: I274f40532cec0bfc026322a633441a1856cb848c Reviewed-by: David Schulz --- src/plugins/languageclient/languageclientmanager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 22261e62730..614617edda4 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -125,7 +125,10 @@ void LanguageClientManager::deleteClient(Client *client) QTC_ASSERT(client, return); client->disconnect(); managerInstance->m_clients.removeAll(client); - client->deleteLater(); + if (managerInstance->m_shuttingDown) + delete client; + else + client->deleteLater(); } void LanguageClientManager::shutdown()