From 55a9b77788dc11bf3669ed77a91d3cb68de03b0a Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 16 Jun 2021 15:01:00 +0200 Subject: Fix conversion of entries to be added to QVariantLists We should pass the variants themselves, not their constData(). Fixes: QTBUG-94502 Change-Id: I92688348d7b46d74935dc11080b26290f5e8be86 Reviewed-by: Fabian Kosmale (cherry picked from commit dbe34dfa0d42510b804c898b77d6fe145473c31b) --- src/qml/jsruntime/qv4engine.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/qml') 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()) { + 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; } -- cgit v1.2.3