From 2710e686104f23cecbf75d338ba867af4819002b Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 27 Sep 2022 13:12:20 +0200 Subject: LanguageClient: guard client access in formatter Change-Id: I76bd41b3a786b1893bc159e0363f90494fd14b9f Reviewed-by: Marcus Tillmanns Reviewed-by: Christian Kandeler --- src/plugins/languageclient/languageclientformatter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/plugins/languageclient/languageclientformatter.cpp') diff --git a/src/plugins/languageclient/languageclientformatter.cpp b/src/plugins/languageclient/languageclientformatter.cpp index 774b0899de..f67302aa0e 100644 --- a/src/plugins/languageclient/languageclientformatter.cpp +++ b/src/plugins/languageclient/languageclientformatter.cpp @@ -49,6 +49,7 @@ static const FormattingOptions formattingOptions(const TextEditor::TabSettings & QFutureWatcher *LanguageClientFormatter::format( const QTextCursor &cursor, const TextEditor::TabSettings &tabSettings) { + QTC_ASSERT(m_client, return nullptr); cancelCurrentRequest(); m_progress = QFutureInterface(); @@ -101,7 +102,7 @@ QFutureWatcher *LanguageClientFormatter::format( void LanguageClientFormatter::cancelCurrentRequest() { - if (m_currentRequest.has_value()) { + if (QTC_GUARD(m_client) && m_currentRequest.has_value()) { m_progress.reportCanceled(); m_progress.reportFinished(); m_client->cancelRequest(*m_currentRequest); @@ -113,8 +114,8 @@ void LanguageClientFormatter::cancelCurrentRequest() void LanguageClientFormatter::handleResponse(const DocumentRangeFormattingRequest::Response &response) { m_currentRequest = std::nullopt; - if (const std::optional &error = response - .error()) + const std::optional &error = response.error(); + if (QTC_GUARD(m_client) && error) m_client->log(*error); ChangeSet changeSet; if (std::optional> result = response.result()) { -- cgit v1.2.1