Don't leak ScopeChainNode's
authorAaron Kennedy <aaron.kennedy@nokia.com>
Mon, 14 Feb 2011 04:25:15 +0000 (14:25 +1000)
committerAaron Kennedy <aaron.kennedy@nokia.com>
Mon, 14 Feb 2011 04:36:57 +0000 (14:36 +1000)
commit3bc6f8d8dd630cd0298e27fc4b7430d2bf73a232
tree55b7099a9044efb8182323fd67841b95616d82f7
parent2855782a45b08aedbed960125514fdd9663ff1c8
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
src/script/api/qscriptengine.cpp
tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp