From eed0241d975cca9b7934deffa6ba5ca294e598db Mon Sep 17 00:00:00 2001 From: Erik Verbruggen <erik.verbruggen@nokia.com> Date: Fri, 4 Jun 2010 10:14:22 +0200 Subject: [PATCH] Fixed a couple of null-checks/-returns. --- src/libs/cplusplus/ResolveExpression.cpp | 10 +++++----- src/libs/qmljs/qmljsinterpreter.cpp | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index a6b5203f233..a2475156270 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -491,8 +491,8 @@ bool ResolveExpression::visit(CallAST *ast) foreach (Symbol *overload, b->find(functionCallOp)) { if (Function *funTy = overload->type()->asFunctionType()) { if (maybeValidPrototype(funTy, actualArgumentCount)) { - Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType(); - addResult(proto->returnType().simplified(), scope); + if (Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType()) + addResult(proto->returnType().simplified(), scope); } } } @@ -535,9 +535,9 @@ bool ResolveExpression::visit(ArrayAccessAST *ast) if (ClassOrNamespace *b = _context.lookupType(namedTy->name(), scope)) { foreach (Symbol *overload, b->find(arrayAccessOp)) { if (Function *funTy = overload->type()->asFunctionType()) { - Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType(); - // ### TODO: check the actual arguments - addResult(proto->returnType().simplified(), scope); + if (Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType()) + // ### TODO: check the actual arguments + addResult(proto->returnType().simplified(), scope); } } diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index a32cd10c9fc..29cfe1a1cca 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1469,10 +1469,11 @@ const ObjectValue *Context::lookupType(const QmlJS::Document *doc, UiQualifiedId const ObjectValue *Context::lookupType(const QmlJS::Document *doc, const QStringList &qmlTypeName) { const ObjectValue *objectValue = typeEnvironment(doc); - if (!objectValue) - return 0; foreach (const QString &name, qmlTypeName) { + if (!objectValue) + return 0; + const Value *value = objectValue->property(name, this); if (!value) return 0; -- GitLab