From 08e829e3a9dae0230678a8471275cebb4c8fb54e Mon Sep 17 00:00:00 2001 From: Chris Adams Date: Fri, 26 Aug 2011 13:54:00 +1000 Subject: Add garbage collector prologue callback to qv8engine This commit provides a generic way to manage persistent handles created by QML so that circular references don't cause leaks, by utilising v8's garbage collector callbacks. Change-Id: Ia898197fdf5d86b90915b835ce3e532f7d400de4 Reviewed-on: http://codereview.qt.nokia.com/3688 Reviewed-by: Qt Sanity Bot Reviewed-by: Aaron Kennedy --- .../data/handleReferenceManagement.handle.1.qml | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml (limited to 'tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml') diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml new file mode 100644 index 0000000000..9c27653b34 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml @@ -0,0 +1,25 @@ +import QtQuick 2.0 +import Qt.test 1.0 + +Item { + id: obj + objectName: "obj" + property CircularReferenceHandle first + property CircularReferenceHandle second + + CircularReferenceHandle { + id: crh + objectName: "crh" + } + + function createReference() { + first = crh.generate(crh); + second = crh.generate(crh); + // NOTE: manually add reference from first to second + // in unit test prior reparenting and gc. + } + + function performGc() { + gc(); + } +} -- cgit v1.2.3