From e3a0a710c62638ad3d2361d8037aa456a3adc9e0 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 6 Aug 2018 08:40:41 +0200 Subject: [PATCH] TextEditor: fix crash while request follow symbol and typing on mac Use a qobject_cast to prevent accessing a not available function. Task-number: QTCREATORBUG-20910 Change-Id: If2aa6b7b120379681e9590db80904c45a6d9bd55 Reviewed-by: Christian Stenger --- src/plugins/cpptools/cppvirtualfunctionassistprovider.h | 1 + src/plugins/texteditor/codeassist/codeassistant.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/cpptools/cppvirtualfunctionassistprovider.h b/src/plugins/cpptools/cppvirtualfunctionassistprovider.h index 52734bd71bb..83de52594b9 100644 --- a/src/plugins/cpptools/cppvirtualfunctionassistprovider.h +++ b/src/plugins/cpptools/cppvirtualfunctionassistprovider.h @@ -40,6 +40,7 @@ namespace CppTools { class CPPTOOLS_EXPORT VirtualFunctionAssistProvider : public TextEditor::IAssistProvider { + Q_OBJECT public: VirtualFunctionAssistProvider(); diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index 4a5a23bf4d7..3cbd99b5177 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -512,7 +512,7 @@ bool CodeAssistantPrivate::isDestroyEvent(int key, const QString &keyText) { if (keyText.isEmpty()) return key != Qt::LeftArrow && key != Qt::RightArrow && key != Qt::Key_Shift; - else if (auto *provider = dynamic_cast(m_requestProvider)) + if (auto *provider = qobject_cast(m_requestProvider)) return !provider->isContinuationChar(keyText.at(0)); return false; }