diff options
Diffstat (limited to 'src/qml/jsruntime/qv4sequenceobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4sequenceobject.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index 73fa2385fd..95ba210753 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -627,8 +627,14 @@ ReturnedValue SequencePrototype::newSequence(QV4::ExecutionEngine *engine, int s return Encode::undefined(); } -ReturnedValue SequencePrototype::fromVariant(QV4::ExecutionEngine *engine, const QVariant &v, - bool *succeeded) +ReturnedValue SequencePrototype::fromVariant( + QV4::ExecutionEngine *engine, const QVariant &v, bool *succeeded) +{ + return fromData(engine, v.metaType(), v.constData(), succeeded); +} + +ReturnedValue SequencePrototype::fromData( + ExecutionEngine *engine, const QMetaType &type, const void *data, bool *succeeded) { QV4::Scope scope(engine); // This function is called when assigning a sequence value to a normal JS var @@ -637,11 +643,10 @@ ReturnedValue SequencePrototype::fromVariant(QV4::ExecutionEngine *engine, const // QObject property. const QQmlType qmlType = QQmlMetaType::qmlType( - v.userType(), QQmlMetaType::TypeIdCategory::MetaType); + type.id(), QQmlMetaType::TypeIdCategory::MetaType); if (qmlType.isSequentialContainer()) { *succeeded = true; - QV4::ScopedObject obj(scope, engine->memoryManager->allocate<QV4Sequence>( - qmlType, v.data())); + QV4::ScopedObject obj(scope, engine->memoryManager->allocate<QV4Sequence>(qmlType, data)); return obj.asReturnedValue(); } |