diff options
author | David Schulz <david.schulz@qt.io> | 2022-09-27 13:12:20 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2022-09-30 04:07:57 +0000 |
commit | 2710e686104f23cecbf75d338ba867af4819002b (patch) | |
tree | 7e981e977b23ab79622665d785a7a6d075d8bf5f /src/plugins/languageclient/languageclientformatter.cpp | |
parent | 99589a75723aed93ca31ab1acd52c9f525920e04 (diff) | |
download | qt-creator-2710e686104f23cecbf75d338ba867af4819002b.tar.gz |
LanguageClient: guard client access in formatter
Change-Id: I76bd41b3a786b1893bc159e0363f90494fd14b9f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientformatter.cpp')
-rw-r--r-- | src/plugins/languageclient/languageclientformatter.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
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<ChangeSet> *LanguageClientFormatter::format( const QTextCursor &cursor, const TextEditor::TabSettings &tabSettings) { + QTC_ASSERT(m_client, return nullptr); cancelCurrentRequest(); m_progress = QFutureInterface<ChangeSet>(); @@ -101,7 +102,7 @@ QFutureWatcher<ChangeSet> *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<DocumentRangeFormattingRequest::Response::Error> &error = response - .error()) + const std::optional<DocumentRangeFormattingRequest::Response::Error> &error = response.error(); + if (QTC_GUARD(m_client) && error) m_client->log(*error); ChangeSet changeSet; if (std::optional<LanguageClientArray<TextEdit>> result = response.result()) { |