aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmljs/qmljsscopebuilder.cpp
diff options
context:
space:
mode:
authorChristian Kamm <[email protected]>2010-10-14 15:14:35 +0200
committerChristian Kamm <[email protected]>2010-10-14 15:15:56 +0200
commita30c016189865656947107f6cc4d9a69c2568a95 (patch)
treeb86c10bd9c6e088f777b306dccb8a288bbb07fbb /src/libs/qmljs/qmljsscopebuilder.cpp
parent6688b6144e9aae1d37bfc96dd38aaa989b522472 (diff)
QmlJS: Fix several crashes when UiQualifiedId::name is 0.
Task-number: QTCREATORBUG-2737 Reviewed-by: Kai Koehne
Diffstat (limited to 'src/libs/qmljs/qmljsscopebuilder.cpp')
-rw-r--r--src/libs/qmljs/qmljsscopebuilder.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/qmljs/qmljsscopebuilder.cpp b/src/libs/qmljs/qmljsscopebuilder.cpp
index 2fbdc0403c6..e1b42833300 100644
--- a/src/libs/qmljs/qmljsscopebuilder.cpp
+++ b/src/libs/qmljs/qmljsscopebuilder.cpp
@@ -228,7 +228,7 @@ void ScopeBuilder::setQmlScopeObject(Node *node)
if (initializer) {
for (UiObjectMemberList *m = initializer->members; m; m = m->next) {
if (UiScriptBinding *scriptBinding = cast<UiScriptBinding *>(m->member)) {
- if (scriptBinding->qualifiedId
+ if (scriptBinding->qualifiedId && scriptBinding->qualifiedId->name
&& scriptBinding->qualifiedId->name->asString() == QLatin1String("target")
&& ! scriptBinding->qualifiedId->next) {
// ### make Evaluate understand statements.
@@ -256,6 +256,8 @@ const Value *ScopeBuilder::scopeObjectLookup(AST::UiQualifiedId *id)
foreach (const ObjectValue *scopeObject, _context->scopeChain().qmlScopeObjects) {
const ObjectValue *object = scopeObject;
for (UiQualifiedId *it = id; it; it = it->next) {
+ if (!it->name)
+ return 0;
result = object->property(it->name->asString(), _context);
if (!result)
break;