summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-11-26 13:45:22 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-11-27 11:42:30 +0100
commit5cc3378858c62dfd9b0a6190b82b9f1762a20d0b (patch)
tree6e69ba3058e879d5ccc6cc3ce86be1234dbd22b9
parent9f272bcb8c1853027e92e769e257adbd8e2ce5f0 (diff)
downloadqt-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.cpp5
-rw-r--r--src/plugins/cppeditor/cppquickfixes.cpp2
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;