From 3d7b75a3525fa4e9c2868b48fadab61eaacd1c57 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 9 Apr 2025 09:24:57 +0200 Subject: [PATCH] LanguageClient: add asserts and early returns for null clients Change-Id: I6f972dbe931e27b2d30b048b413e95aea1fca282 Reviewed-by: Eike Ziller --- src/plugins/languageclient/languageclientmanager.cpp | 3 ++- src/plugins/languageclient/languageclientsettings.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 16f76160cbd..9ab57d4994a 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -660,7 +660,8 @@ void LanguageClientManager::documentOpened(Core::IDocument *document) clients.removeAll(clientForProject); } } else if (setting->m_startBehavior == BaseSettings::RequiresFile && clients.isEmpty()) { - clients << startClient(setting); + if (Client *client = startClient(setting); QTC_GUARD(client)) + clients << client; } allClients << clients; } diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index f5e73eb0a4b..357487cc8a3 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -618,6 +618,7 @@ Client *BaseSettings::createClient(ProjectExplorer::Project *project) const BaseClientInterface *interface = createInterface(project); QTC_ASSERT(interface, return nullptr); auto *client = createClient(interface); + QTC_ASSERT(client, return nullptr); if (client->name().isEmpty()) client->setName(Utils::globalMacroExpander()->expand(m_name));