aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml
diff options
context:
space:
mode:
authorChris Adams <christopher.adams@nokia.com>2011-08-26 13:54:00 +1000
committerQt by Nokia <qt-info@nokia.com>2011-09-06 08:29:53 +0200
commit08e829e3a9dae0230678a8471275cebb4c8fb54e (patch)
treefdbbc6b718ef026cac7c929ca710277478a4739c /tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml
parent0c0f03e2b9756afb4e868a76734cc90102218f0a (diff)
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 <qt_sanity_bot@ovi.com> Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml')
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/handleReferenceManagement.handle.1.qml25
1 files changed, 25 insertions, 0 deletions
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();
+ }
+}