aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4engine.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2022-10-05 17:01:21 +0200
committerUlf Hermann <ulf.hermann@qt.io>2022-10-07 15:17:02 +0200
commit81faddec9c6607834da4fdb931f81f29e1f7ac69 (patch)
treeb71d0df5f0febaf5b24bab4baa9d718e64436112 /src/qml/jsruntime/qv4engine.cpp
parent8d9fd352f8b7fb80e75372d6ad337264887a3b14 (diff)
V4: Drop extra QVariant parameter from fromData()
The data needs to be copied anyway if we are going to store it in ScarceResourceObject. We can just as well copy it from the void pointer. Change-Id: Ic106221138b1236a6ddea20cfdb468c6fbe3e1c3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r--src/qml/jsruntime/qv4engine.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index f28f3ab273..91e5c62f8c 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -1186,9 +1186,9 @@ Heap::Object *ExecutionEngine::newEvalErrorObject(const QString &message)
return ErrorObject::create<EvalErrorObject>(this, message);
}
-Heap::Object *ExecutionEngine::newVariantObject(const QVariant &v)
+Heap::Object *ExecutionEngine::newVariantObject(const QMetaType type, const void *data)
{
- return memoryManager->allocate<VariantObject>(v);
+ return memoryManager->allocate<VariantObject>(type, data);
}
Heap::Object *ExecutionEngine::newForInIteratorObject(Object *o)
@@ -1750,13 +1750,9 @@ static QVariant objectToVariant(const QV4::Object *o, V4ObjectSet *visitedObject
/*!
\internal
- Transform the given \a metaType and \a ptr into a JavaScript representation. You can pass an
- optional \a variant in order to avoid the construction of a new QVariant in case the value
- has to be stored as a variant object. In that case, the contents of \a variant have to be
- exactly the same as \a metaType and \a ptr.
+ Transform the given \a metaType and \a ptr into a JavaScript representation.
*/
-QV4::ReturnedValue ExecutionEngine::fromData(
- QMetaType metaType, const void *ptr, const QVariant *variant)
+QV4::ReturnedValue ExecutionEngine::fromData(QMetaType metaType, const void *ptr)
{
const int type = metaType.id();
if (type < QMetaType::User) {
@@ -1838,7 +1834,7 @@ QV4::ReturnedValue ExecutionEngine::fromData(
case QMetaType::QPixmap:
case QMetaType::QImage:
// Scarce value types
- return QV4::Encode(newVariantObject(variant ? *variant : QVariant(metaType, ptr)));
+ return QV4::Encode(newVariantObject(metaType, ptr));
default:
break;
}
@@ -1906,12 +1902,12 @@ QV4::ReturnedValue ExecutionEngine::fromData(
if (metaType.flags() & QMetaType::IsEnumeration)
return QV4::Encode(*reinterpret_cast<const int *>(ptr));
- return QV4::Encode(newVariantObject(variant ? *variant : QVariant(metaType, ptr)));
+ return QV4::Encode(newVariantObject(metaType, ptr));
}
QV4::ReturnedValue QV4::ExecutionEngine::fromVariant(const QVariant &variant)
{
- return fromData(variant.metaType(), variant.constData(), &variant);
+ return fromData(variant.metaType(), variant.constData());
}
QVariantMap ExecutionEngine::variantMapFromJS(const Object *o)