diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2012-08-14 14:19:09 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-31 14:33:01 +0200 |
commit | 5e428bb926e0ad4df8ddd672d38b73f5859cbfd5 (patch) | |
tree | 1dd658c50d171aeafdcbcff76b7c48a0c709c98b /tests/auto/qml/qqmlecmascript/testtypes.h | |
parent | 04774bb14c81688f86a2b31b8624bde8ebf59062 (diff) |
Delete weak JS objects on exit right away
This reduces memory leaks on exit when the engine is destroyed
after exec() has finished.
Change-Id: I917d103966d55b4dd3ba4e986ff902e29d8fb0ac
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'tests/auto/qml/qqmlecmascript/testtypes.h')
-rw-r--r-- | tests/auto/qml/qqmlecmascript/testtypes.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tests/auto/qml/qqmlecmascript/testtypes.h b/tests/auto/qml/qqmlecmascript/testtypes.h index a4615c5f52..70d4397200 100644 --- a/tests/auto/qml/qqmlecmascript/testtypes.h +++ b/tests/auto/qml/qqmlecmascript/testtypes.h @@ -1459,21 +1459,29 @@ private: class MyDeleteObject : public QObject { Q_OBJECT - Q_PROPERTY(QObject *nestedObject READ nestedObject NOTIFY nestedObjectChanged); - Q_PROPERTY(int deleteNestedObject READ deleteNestedObject NOTIFY deleteNestedObjectChanged); + Q_PROPERTY(QObject *nestedObject READ nestedObject NOTIFY nestedObjectChanged) + Q_PROPERTY(int deleteNestedObject READ deleteNestedObject NOTIFY deleteNestedObjectChanged) + Q_PROPERTY(QObject *object2 READ object2 NOTIFY object2Changed) public: - MyDeleteObject() : m_nestedObject(new MyQmlObject) {} + MyDeleteObject() : m_nestedObject(new MyQmlObject), m_object1(0), m_object2(0) {} + Q_INVOKABLE QObject *object1() const { return m_object1; } + Q_INVOKABLE QObject *object2() const { return m_object2; } + void setObject1(QObject *object) { m_object1 = object; } + void setObject2(QObject *object) { m_object2 = object; emit object2Changed(); } QObject *nestedObject() const { return m_nestedObject; } int deleteNestedObject() { delete m_nestedObject; m_nestedObject = 0; return 1; } signals: void nestedObjectChanged(); void deleteNestedObjectChanged(); + void object2Changed(); private: MyQmlObject *m_nestedObject; + QObject *m_object1; + QObject *m_object2; }; class DateTimeExporter : public QObject |