aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvaluetypewrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlvaluetypewrapper.cpp')
-rw-r--r--src/qml/qml/qqmlvaluetypewrapper.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp
index 9e08882b59..1d91ff6bd8 100644
--- a/src/qml/qml/qqmlvaluetypewrapper.cpp
+++ b/src/qml/qml/qqmlvaluetypewrapper.cpp
@@ -63,6 +63,21 @@ QVariant Heap::QQmlValueTypeWrapper::toVariant() const
}
+ReturnedValue QQmlValueTypeReference::create(
+ ExecutionEngine *engine, Heap::QQmlValueTypeReference *cloneFrom, QObject *object)
+{
+ Scope scope(engine);
+ initProto(engine);
+
+ Scoped<QQmlValueTypeReference> r(scope, engine->memoryManager->allocate<QQmlValueTypeReference>());
+ r->d()->object = object;
+ r->d()->property = cloneFrom->property;
+ r->d()->setMetaObject(cloneFrom->metaObject());
+ r->d()->setValueType(cloneFrom->valueType());
+ r->d()->setGadgetPtr(nullptr);
+ return r->asReturnedValue();
+}
+
bool QQmlValueTypeReference::readReferenceValue() const
{
if (!d()->object)