LanguageClient: ensure that deleted clients are untracked in manager

Change-Id: I0624ce9e6f8788af7193ebdf87b72497bab0ba39
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2022-09-22 10:42:06 +02:00
parent 1c05237820
commit e7237a9675

View File

@@ -96,6 +96,14 @@ void LanguageClient::LanguageClientManager::addClient(Client *client)
[client](const DynamicCapabilities &capabilities) {
managerInstance->m_inspector.updateCapabilities(client->name(), capabilities);
});
connect(client,
&Client::destroyed,
managerInstance, [client]() {
QTC_ASSERT(!managerInstance->m_clients.contains(client),
managerInstance->m_clients.removeAll(client));
for (QList<Client *> &clients : managerInstance->m_clientsForSetting)
QTC_CHECK(clients.removeAll(client) == 0);
});
emit managerInstance->clientAdded(client);
}