diff options
author | Christian Kamm <[email protected]> | 2010-10-14 15:14:35 +0200 |
---|---|---|
committer | Christian Kamm <[email protected]> | 2010-10-14 15:15:56 +0200 |
commit | a30c016189865656947107f6cc4d9a69c2568a95 (patch) | |
tree | b86c10bd9c6e088f777b306dccb8a288bbb07fbb /src/libs/qmljs/qmljsscopebuilder.cpp | |
parent | 6688b6144e9aae1d37bfc96dd38aaa989b522472 (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.cpp | 4 |
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; |