diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2012-08-13 15:48:44 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-24 11:30:49 +0200 |
commit | f1422adb3e71fd9c32b65fa0b9d3f076ed0ccfbb (patch) | |
tree | 6d29e100fc6896defbf4836fff20c0d386dff8be /tests/auto/qml/qjsengine | |
parent | 8f893d1d675b09d0a5f2add1df7a9970bb3cb227 (diff) |
Don't put JavaScript-owned objects on the stack.
Only the fact that the object wrapper uses deleteLater() instead of
delete made this not crash.
Change-Id: I034d8c7f24b963be9e031446ffdfa33e6bc266cc
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'tests/auto/qml/qjsengine')
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index 98db3b1c3b..3faa0f5f3e 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -2482,7 +2482,9 @@ void tst_QJSEngine::reentrancy_Array() void tst_QJSEngine::reentrancy_objectCreation() { - QObject temp; + // Owned by JS engine, as newQObject() sets JS ownership explicitly + QObject *temp = new QObject(); + QJSEngine eng1; QJSEngine eng2; { @@ -2499,8 +2501,8 @@ void tst_QJSEngine::reentrancy_objectCreation() QCOMPARE(qjsvalue_cast<QRegExp>(r2), qjsvalue_cast<QRegExp>(r1)); } { - QJSValue o1 = eng1.newQObject(&temp); - QJSValue o2 = eng2.newQObject(&temp); + QJSValue o1 = eng1.newQObject(temp); + QJSValue o2 = eng2.newQObject(temp); QCOMPARE(o1.toQObject(), o2.toQObject()); QCOMPARE(o2.toQObject(), o1.toQObject()); } |