Don't leak ScopeChainNode's
authorJason McDonald <jason.mcdonald@nokia.com>
Wed, 16 Feb 2011 11:58:01 +0000 (21:58 +1000)
committerJason McDonald <jason.mcdonald@nokia.com>
Wed, 16 Feb 2011 11:58:01 +0000 (21:58 +1000)
commit079f85dc421dc13d26f70851ecf4c360c3b6c93d
tree6cd47707a6b8e672e20ab1c38cffecce12f39f17
parentaea6acdc3dc0a499011e7778d4fa783bc193afe0
Don't leak ScopeChainNode's

Create a sub-scope of the global scope chain, rather than a completely new scope
chain.  Leaks are difficult to autotest, but an autotest for
QScriptDeclarativeClass::pushCleanContext() was added to ensure its behavior doesn't
regress.  To reproduce the leak (prior to this change) use:

while (true) {
    QScriptDeclarativeClass::pushCleanContext(&engine);
    engine.popContext();
}

Change-Id: I41ac61ea1664da569eb329c8276f2a0bb6d2f1f7
Task-number: QTBUG-17166
Reviewed-by: Martin Jones
(cherry picked from commit 3bc6f8d8dd630cd0298e27fc4b7430d2bf73a232)

Conflicts:

tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
src/script/api/qscriptengine.cpp