aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r--src/qml/jsruntime/qv4engine.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index 21aee81985..1fcdfa8f6f 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -1605,7 +1605,9 @@ static QVariant toVariant(QV4::ExecutionEngine *e, const QV4::Value &value, int
}
asVariant = toVariant(e, arrayValue, valueMetaType.id(), false,
visitedObjects);
- if (valueMetaType.id() != QMetaType::QVariant) {
+ if (valueMetaType == QMetaType::fromType<QVariant>()) {
+ retnAsIterable.metaContainer().addValue(retn.data(), &asVariant);
+ } else {
auto originalType = asVariant.metaType();
bool couldConvert = asVariant.convert(valueMetaType);
if (!couldConvert) {
@@ -1616,8 +1618,8 @@ static QVariant toVariant(QV4::ExecutionEngine *e, const QV4::Value &value, int
// create default constructed value
asVariant = QVariant(valueMetaType, nullptr);
}
+ retnAsIterable.metaContainer().addValue(retn.data(), asVariant.constData());
}
- retnAsIterable.metaContainer().addValue(retn.data(), asVariant.constData());
}
return retn;
}