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 <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2019-03-05 12:56:53 +01:00
parent 762bcc5c39
commit 3d1efce0a4

View File

@@ -125,7 +125,10 @@ void LanguageClientManager::deleteClient(Client *client)
QTC_ASSERT(client, return); QTC_ASSERT(client, return);
client->disconnect(); client->disconnect();
managerInstance->m_clients.removeAll(client); managerInstance->m_clients.removeAll(client);
client->deleteLater(); if (managerInstance->m_shuttingDown)
delete client;
else
client->deleteLater();
} }
void LanguageClientManager::shutdown() void LanguageClientManager::shutdown()