QmlJS: Fix several crashes when UiQualifiedId::name is 0.

Task-number: QTCREATORBUG-2737
Reviewed-by: Kai Koehne
This commit is contained in:
Christian Kamm
2010-10-14 15:14:35 +02:00
parent 6688b6144e
commit a30c016189
4 changed files with 7 additions and 4 deletions

View File

@@ -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;