diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2014-11-26 13:45:22 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2014-11-27 11:42:30 +0100 |
commit | 5cc3378858c62dfd9b0a6190b82b9f1762a20d0b (patch) | |
tree | 6e69ba3058e879d5ccc6cc3ce86be1234dbd22b9 | |
parent | 9f272bcb8c1853027e92e769e257adbd8e2ce5f0 (diff) | |
download | qt-creator-5cc3378858c62dfd9b0a6190b82b9f1762a20d0b.tar.gz |
CppEditor: Fix crash in InsertQtPropertyMembers for invalid code
Change-Id: I8a3a3240033d23aa9e3df5276c4e6302d97f71b9
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-rw-r--r-- | src/plugins/cppeditor/cppquickfix_test.cpp | 5 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfixes.cpp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index 70d2e1c267..3269df3c0d 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -1467,6 +1467,11 @@ void CppEditorPlugin::test_quickfix_data() " }\n" " f1(*str);\n" "}\n"); + + QTest::newRow("InsertQtPropertyMembers_noTriggerInvalidCode") + << CppQuickFixFactoryPtr(new InsertQtPropertyMembers) + << _("class C { @Q_PROPERTY(typeid foo READ foo) };\n") + << _(); } void CppEditorPlugin::test_quickfix() diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index 44e8e88278..36a0d41d5b 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -4254,7 +4254,7 @@ void InsertQtPropertyMembers::match(const CppQuickFixInterface &interface, AST * const ast = path.last(); QtPropertyDeclarationAST *qtPropertyDeclaration = ast->asQtPropertyDeclaration(); - if (!qtPropertyDeclaration) + if (!qtPropertyDeclaration || !qtPropertyDeclaration->type_id) return; ClassSpecifierAST *klass = 0; |