summaryrefslogtreecommitdiff
path: root/src/plugins/languageclient/languageclientformatter.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2022-09-27 13:12:20 +0200
committerDavid Schulz <david.schulz@qt.io>2022-09-30 04:07:57 +0000
commit2710e686104f23cecbf75d338ba867af4819002b (patch)
tree7e981e977b23ab79622665d785a7a6d075d8bf5f /src/plugins/languageclient/languageclientformatter.cpp
parent99589a75723aed93ca31ab1acd52c9f525920e04 (diff)
downloadqt-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.cpp7
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()) {