Skip to content
Snippets Groups Projects
Commit f3767148 authored by Roberto Raggi's avatar Roberto Raggi
Browse files

Fixed: Possible crash when resolving fully qualified name ids.

Task: 249227
parent 898179f8
No related branches found
No related tags found
No related merge requests found
...@@ -223,14 +223,13 @@ QList<Symbol *> LookupContext::resolve(Name *name, const QList<Scope *> &visible ...@@ -223,14 +223,13 @@ QList<Symbol *> LookupContext::resolve(Name *name, const QList<Scope *> &visible
continue; continue;
if (q->nameCount() > 1) { if (q->nameCount() > 1) {
Name *classOrNamespaceName = 0; Name *classOrNamespaceName = control()->qualifiedNameId(q->names(),
q->nameCount() - 1);
if (q->nameCount() == 1)
classOrNamespaceName = q->nameAt(0);
else
classOrNamespaceName = control()->qualifiedNameId(q->names(),
q->nameCount() - 1);
if (Identifier *classOrNamespaceNameId = identifier(classOrNamespaceName)) {
if (classOrNamespaceNameId->isEqualTo(id))
continue;
}
const QList<Symbol *> resolvedClassOrNamespace = const QList<Symbol *> resolvedClassOrNamespace =
resolveClassOrNamespace(classOrNamespaceName, visibleScopes); resolveClassOrNamespace(classOrNamespaceName, visibleScopes);
...@@ -455,7 +454,7 @@ void LookupContext::expandFunction(Scope *scope, ...@@ -455,7 +454,7 @@ void LookupContext::expandFunction(Scope *scope,
expandedScopes->append(function->arguments()); expandedScopes->append(function->arguments());
if (QualifiedNameId *q = function->name()->asQualifiedNameId()) { if (QualifiedNameId *q = function->name()->asQualifiedNameId()) {
Name *nestedNameSpec = 0; Name *nestedNameSpec = 0;
if (q->nameCount() == 1 && q->isGlobal()) if (q->nameCount() == 1)
nestedNameSpec = q->nameAt(0); nestedNameSpec = q->nameAt(0);
else else
nestedNameSpec = control()->qualifiedNameId(q->names(), q->nameCount() - 1, nestedNameSpec = control()->qualifiedNameId(q->names(), q->nameCount() - 1,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment