forked from qt-creator/qt-creator
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:
@@ -96,6 +96,14 @@ void LanguageClient::LanguageClientManager::addClient(Client *client)
|
|||||||
[client](const DynamicCapabilities &capabilities) {
|
[client](const DynamicCapabilities &capabilities) {
|
||||||
managerInstance->m_inspector.updateCapabilities(client->name(), 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);
|
emit managerInstance->clientAdded(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user