Commit 8d14f18e authored by Christian Kamm's avatar Christian Kamm
Browse files

Add an accessor to get the flat scope list from ScopeChain.

Done-with: Erik Verbruggen
parent e9039db9
...@@ -745,22 +745,27 @@ void ScopeChain::QmlComponentChain::add(QList<const ObjectValue *> *list) const ...@@ -745,22 +745,27 @@ void ScopeChain::QmlComponentChain::add(QList<const ObjectValue *> *list) const
void ScopeChain::update() void ScopeChain::update()
{ {
all.clear(); _all.clear();
all += globalScope; _all += globalScope;
foreach (QmlComponentChain *parent, qmlComponentScope.instantiatingComponents) foreach (QmlComponentChain *parent, qmlComponentScope.instantiatingComponents)
parent->add(&all); parent->add(&_all);
if (qmlComponentScope.rootObject) if (qmlComponentScope.rootObject)
all += qmlComponentScope.rootObject; _all += qmlComponentScope.rootObject;
all += qmlScopeObjects; _all += qmlScopeObjects;
all += qmlComponentScope.functionScopes; _all += qmlComponentScope.functionScopes;
if (qmlComponentScope.ids) if (qmlComponentScope.ids)
all += qmlComponentScope.ids; _all += qmlComponentScope.ids;
if (qmlTypes) if (qmlTypes)
all += qmlTypes; _all += qmlTypes;
all += jsScopes; _all += jsScopes;
}
QList<const ObjectValue *> ScopeChain::all() const
{
return _all;
} }
...@@ -819,7 +824,7 @@ void Context::setTypeEnvironment(const QmlJS::Document *doc, const ObjectValue * ...@@ -819,7 +824,7 @@ void Context::setTypeEnvironment(const QmlJS::Document *doc, const ObjectValue *
const Value *Context::lookup(const QString &name) const Value *Context::lookup(const QString &name)
{ {
QList<const ObjectValue *> scopes = _scopeChain.all; QList<const ObjectValue *> scopes = _scopeChain.all();
for (int index = scopes.size() - 1; index != -1; --index) { for (int index = scopes.size() - 1; index != -1; --index) {
const ObjectValue *scope = scopes.at(index); const ObjectValue *scope = scopes.at(index);
......
...@@ -249,7 +249,10 @@ public: ...@@ -249,7 +249,10 @@ public:
// rebuilds the flat list of all scopes // rebuilds the flat list of all scopes
void update(); void update();
QList<const ObjectValue *> all; QList<const ObjectValue *> all() const;
private:
QList<const ObjectValue *> _all;
}; };
class QMLJS_EXPORT Context class QMLJS_EXPORT Context
......
...@@ -189,7 +189,7 @@ public: ...@@ -189,7 +189,7 @@ public:
_properties.clear(); _properties.clear();
_currentObject = 0; _currentObject = 0;
foreach (const Interpreter::ObjectValue *scope, _context->scopeChain().all) foreach (const Interpreter::ObjectValue *scope, _context->scopeChain().all())
enumerateProperties(scope); enumerateProperties(scope);
return _properties; return _properties;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment