Refactor marking GC'ed objects
authorLars Knoll <lars.knoll@digia.com>
Sat, 2 Nov 2013 15:30:26 +0000 (16:30 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 5 Nov 2013 17:54:51 +0000 (18:54 +0100)
commit025365f1dc6dc9c3244a125882433e55b57fa672
tree6cab46d0595e7c9a8b61c8f2eb620dba009f30f8
parentc9a90b3181723061e27e7545b70a66dda4f4306d
Refactor marking GC'ed objects

Don't use recursive function calls anymore. Instead, push marked
objects onto the JS stack, and then pop them off when their children
are being marked.

Should reduce stack memory usage, and improves performance by ~5%.

Change-Id: I2d37d97579144fcba87ec8e9fd545dd220c01fbb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
45 files changed:
src/qml/compiler/qv4compileddata.cpp
src/qml/compiler/qv4compileddata_p.h
src/qml/jsruntime/qv4argumentsobject.cpp
src/qml/jsruntime/qv4argumentsobject_p.h
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4engine.cpp
src/qml/jsruntime/qv4engine_p.h
src/qml/jsruntime/qv4errorobject.cpp
src/qml/jsruntime/qv4errorobject_p.h
src/qml/jsruntime/qv4function.cpp
src/qml/jsruntime/qv4function_p.h
src/qml/jsruntime/qv4functionobject.cpp
src/qml/jsruntime/qv4functionobject_p.h
src/qml/jsruntime/qv4identifiertable_p.h
src/qml/jsruntime/qv4internalclass.cpp
src/qml/jsruntime/qv4managed_p.h
src/qml/jsruntime/qv4mm.cpp
src/qml/jsruntime/qv4mm_p.h
src/qml/jsruntime/qv4object.cpp
src/qml/jsruntime/qv4object_p.h
src/qml/jsruntime/qv4objectiterator.cpp
src/qml/jsruntime/qv4objectiterator_p.h
src/qml/jsruntime/qv4qmlextensions.cpp
src/qml/jsruntime/qv4qmlextensions_p.h
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/jsruntime/qv4qobjectwrapper_p.h
src/qml/jsruntime/qv4regexp.cpp
src/qml/jsruntime/qv4regexp_p.h
src/qml/jsruntime/qv4regexpobject.cpp
src/qml/jsruntime/qv4regexpobject_p.h
src/qml/jsruntime/qv4script.cpp
src/qml/jsruntime/qv4script_p.h
src/qml/jsruntime/qv4string.cpp
src/qml/jsruntime/qv4string_p.h
src/qml/jsruntime/qv4stringobject.cpp
src/qml/jsruntime/qv4stringobject_p.h
src/qml/jsruntime/qv4value.cpp
src/qml/jsruntime/qv4value_def_p.h
src/qml/jsruntime/qv4value_p.h
src/qml/qml/qqmlcomponent.cpp
src/qml/qml/qqmlvmemetaobject.cpp
src/qml/qml/qqmlvmemetaobject_p.h
src/qml/qml/qqmlxmlhttprequest.cpp
src/qml/qml/v8/qqmlbuiltinfunctions.cpp
src/quick/items/context2d/qquickcontext2d.cpp