From 6a4c4ae639abf565d5cdc56a29f51e474abbfaef Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 13 Jun 2013 17:10:35 +0200 Subject: [PATCH] Fix ownership of JS value returned by QJSEngine::newQObject As documented, the ownership should be JavaScriptOwned, which means: Keep the QObject alive if there's a parent or some other JS object is referencing it. Fixes three QJSEngine auto-tests Change-Id: I75503273b34e78355b08526da591b8d307a1c6e6 Reviewed-by: Lars Knoll --- src/qml/qml/v8/qjsengine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qml/qml/v8/qjsengine.cpp b/src/qml/qml/v8/qjsengine.cpp index d072c3a..9a3b7f2 100644 --- a/src/qml/qml/v8/qjsengine.cpp +++ b/src/qml/qml/v8/qjsengine.cpp @@ -65,6 +65,7 @@ #include #include #include +#include #undef Q_D #undef Q_Q @@ -319,6 +320,7 @@ QJSValue QJSEngine::newQObject(QObject *object) { Q_D(QJSEngine); QV4::ExecutionEngine *v4 = QV8Engine::getV4(d); + QQmlEngine::setObjectOwnership(object, QQmlEngine::JavaScriptOwnership); return new QJSValuePrivate(v4, QV4::QObjectWrapper::wrap(v4, object)); } -- 2.7.4