diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-12-12 12:35:52 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-12-20 12:00:33 +0100 |
commit | 965fac4418bec7e7b3c84efd76f7803116fb9eac (patch) | |
tree | cb9991dcba0f80bd0ee15ef58bffe39c40918250 /src/qml/qml/qqmlvaluetypewrapper.cpp | |
parent | 2fe06148f237d7a12a3c034cdfc3a6b923ea1df6 (diff) |
Store a heap object in the qmlextensions
Change-Id: I5ad9236378ff1e037945d024ee5bd6629dddec4d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlvaluetypewrapper.cpp')
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index a98bad636a..ede55d033f 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -144,7 +144,7 @@ void QmlValueTypeWrapper::initProto(ExecutionEngine *v4) Scope scope(v4); Scoped<Object> o(scope, v4->newObject()); o->defineDefaultProperty(v4->id_toString, method_toString, 1); - v4->qmlExtensions()->valueTypeWrapperPrototype = o; + v4->qmlExtensions()->valueTypeWrapperPrototype = o->d(); } ReturnedValue QmlValueTypeWrapper::create(QV8Engine *v8, QObject *object, int property, QQmlValueType *type) @@ -154,7 +154,8 @@ ReturnedValue QmlValueTypeWrapper::create(QV8Engine *v8, QObject *object, int pr initProto(v4); Scoped<QmlValueTypeReference> r(scope, v4->memoryManager->alloc<QmlValueTypeReference>(v8)); - r->setPrototype(v4->qmlExtensions()->valueTypeWrapperPrototype->asObject()); + ScopedObject proto(scope, v4->qmlExtensions()->valueTypeWrapperPrototype); + r->setPrototype(proto); r->d()->type = type; r->d()->object = object; r->d()->property = property; return r->asReturnedValue(); } @@ -166,7 +167,8 @@ ReturnedValue QmlValueTypeWrapper::create(QV8Engine *v8, const QVariant &value, initProto(v4); Scoped<QmlValueTypeCopy> r(scope, v4->memoryManager->alloc<QmlValueTypeCopy>(v8)); - r->setPrototype(v4->qmlExtensions()->valueTypeWrapperPrototype->asObject()); + ScopedObject proto(scope, v4->qmlExtensions()->valueTypeWrapperPrototype); + r->setPrototype(proto); r->d()->type = type; r->d()->value = value; return r->asReturnedValue(); } |