summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2018-01-24 13:02:43 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2018-01-24 14:23:46 +0000
commit8836f2a6dcdb6ffadf3dc37f763423aba08eb9cd (patch)
tree38afb99734b36bff7f92c729f5575233a2c609cf
parentb500bba6af2e238d2b74288156ca613d6a34090d (diff)
downloadqt-creator-8836f2a6dcdb6ffadf3dc37f763423aba08eb9cd.tar.gz
Clang: Fix crash when backend is not yet started
Due to DummyBackendSender not overriding requestToolTip() the base implementation was called which assumed a connected backend. To avoid this in future, derive DummyBackendSender from ClangCodeModelServerInterface so the compiler will warn about not overridden functions. Task-number: QTCREATORBUG-19644 Change-Id: Ifd846cbe581092e1688719119dad5003da66d0a3 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
-rw-r--r--src/plugins/clangcodemodel/clangbackendcommunicator.cpp6
-rw-r--r--src/plugins/clangcodemodel/clangbackendcommunicator.h2
2 files changed, 3 insertions, 5 deletions
diff --git a/src/plugins/clangcodemodel/clangbackendcommunicator.cpp b/src/plugins/clangcodemodel/clangbackendcommunicator.cpp
index 1abd6982ed..59b928babe 100644
--- a/src/plugins/clangcodemodel/clangbackendcommunicator.cpp
+++ b/src/plugins/clangcodemodel/clangbackendcommunicator.cpp
@@ -70,11 +70,9 @@ static QString backendProcessPath()
namespace ClangCodeModel {
namespace Internal {
-class DummyBackendSender : public BackendSender
+class DummyBackendSender : public ClangBackEnd::ClangCodeModelServerInterface
{
public:
- DummyBackendSender() : BackendSender(nullptr) {}
-
void end() override {}
void registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &) override {}
void updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &) override {}
@@ -87,10 +85,10 @@ public:
void requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &) override {}
void requestReferences(const RequestReferencesMessage &) override {}
void requestFollowSymbol(const RequestFollowSymbolMessage &) override {}
+ void requestToolTip(const RequestToolTipMessage &) override {}
void updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &) override {}
};
-
BackendCommunicator::BackendCommunicator()
: m_connection(&m_receiver)
, m_sender(new DummyBackendSender())
diff --git a/src/plugins/clangcodemodel/clangbackendcommunicator.h b/src/plugins/clangcodemodel/clangbackendcommunicator.h
index b3cb166a39..70312aaeb9 100644
--- a/src/plugins/clangcodemodel/clangbackendcommunicator.h
+++ b/src/plugins/clangcodemodel/clangbackendcommunicator.h
@@ -147,7 +147,7 @@ private:
BackendReceiver m_receiver;
ClangBackEnd::ClangCodeModelConnectionClient m_connection;
QTimer m_backendStartTimeOut;
- QScopedPointer<BackendSender> m_sender;
+ QScopedPointer<ClangBackEnd::ClangCodeModelServerInterface> m_sender;
int m_connectedCount = 0;
};