Fixed possible crashes when resolving namespace and class bindings.

This commit is contained in:
Roberto Raggi
2009-07-13 18:00:22 +02:00
parent b8eda86898
commit 2e49aaf484
2 changed files with 43 additions and 20 deletions

View File

@@ -84,8 +84,8 @@ public:
virtual NamespaceBinding *asNamespaceBinding() { return 0; }
virtual ClassBinding *asClassBinding() { return 0; }
virtual ClassBinding *findClassBinding(Name *name) = 0;
virtual Binding *findClassOrNamespaceBinding(Identifier *id) = 0;
virtual ClassBinding *findClassBinding(Name *name, QSet<Binding *> *processed) = 0;
virtual Binding *findClassOrNamespaceBinding(Identifier *id, QSet<Binding *> *processed) = 0;
};
class CPLUSPLUS_EXPORT NamespaceBinding: public Binding
@@ -116,8 +116,8 @@ public:
Name *name,
bool lookAtParent = true);
virtual ClassBinding *findClassBinding(Name *name);
virtual Binding *findClassOrNamespaceBinding(Identifier *id);
virtual ClassBinding *findClassBinding(Name *name, QSet<Binding *> *processed);
virtual Binding *findClassOrNamespaceBinding(Identifier *id, QSet<Binding *> *processed);
/// Helpers.
virtual QByteArray qualifiedId() const;
@@ -171,8 +171,8 @@ public:
Identifier *identifier() const;
virtual QByteArray qualifiedId() const;
virtual ClassBinding *findClassBinding(Name *name);
virtual Binding *findClassOrNamespaceBinding(Identifier *id);
virtual ClassBinding *findClassBinding(Name *name, QSet<Binding *> *processed);
virtual Binding *findClassOrNamespaceBinding(Identifier *id, QSet<Binding *> *processed);
void dump();