aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2020-08-17 10:59:47 +0200
committerLars Knoll <lars.knoll@qt.io>2020-08-23 20:50:04 +0200
commit48b4c1f450109b148f03f62574d78b460859c4a1 (patch)
treebbd5f5f2e123444c28179e5886684535c8d09830 /src/qml/jsruntime
parentf7100fbaaceb7c74b164a9130218a197454433cf (diff)
Adapt to qtbase changes
The internal QVariant constructor taking a QMetaTypeId has been removed. Thus, construct QMetaTypes where necessary from the id, or avoid a QMetaType -> ID -> QMetaType roundtrip where we already have a metatype. Also fix a few missing includse that were previously transitively included. Change-Id: I56ce92281d616108a4ff80fe5052b919d1282357 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4engine.cpp6
-rw-r--r--src/qml/jsruntime/qv4qobjectwrapper.cpp14
-rw-r--r--src/qml/jsruntime/qv4vme_moth.cpp2
3 files changed, 11 insertions, 11 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index 4d4013db48..f40fc3b780 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -1568,7 +1568,7 @@ static QVariant toVariant(QV4::ExecutionEngine *e, const QV4::Value &value, int
// the QVariant constructor will create a copy, so we have manually
// destroy the value returned by QMetaType::create
auto temp = QMetaType::create(typeHint);
- retn = QVariant(typeHint, temp);
+ retn = QVariant(QMetaType(typeHint), temp);
QMetaType::destroy(typeHint, temp);
auto retnAsIterable = retn.value<QtMetaTypePrivate::QSequentialIterableImpl>();
if (retnAsIterable.containerCapabilities() & QtMetaTypePrivate::ContainerIsAppendable) {
@@ -1596,7 +1596,7 @@ static QVariant toVariant(QV4::ExecutionEngine *e, const QV4::Value &value, int
QString::fromUtf8(QMetaType::typeName(originalType)),
QString::fromUtf8(QMetaType::typeName(retnAsIterable._metaType_id)));
// create default constructed value
- asVariant = QVariant(retnAsIterable._metaType_id, nullptr);
+ asVariant = QVariant(QMetaType(retnAsIterable._metaType_id), nullptr);
}
retnAsIterable.append(asVariant.constData());
}
@@ -1913,7 +1913,7 @@ QV4::ReturnedValue ExecutionEngine::metaTypeToJS(int type, const void *data)
{
Q_ASSERT(data != nullptr);
- QVariant variant(type, data);
+ QVariant variant(QMetaType(type), data);
if (QMetaType::Type(variant.userType()) == QMetaType::QVariant) {
// unwrap it: this is tested in QJSEngine, and makes the most sense for
// end-user code too.
diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
index d37f80ab0a..edd323286a 100644
--- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
@@ -200,7 +200,7 @@ static QV4::ReturnedValue loadProperty(QV4::ExecutionEngine *v4, QObject *object
"'%s::%s'", p.typeName(), object->metaObject()->className(), p.name());
return QV4::Encode::undefined();
} else {
- QVariant v(property.propType(), (void *)nullptr);
+ QVariant v(QMetaType(property.propType()), (void *)nullptr);
property.readProperty(object, v.data());
return scope.engine->fromVariant(v);
}
@@ -956,7 +956,7 @@ struct QObjectSlotDispatcher : public QtPrivate::QSlotObjectBase
if (type == qMetaTypeId<QVariant>()) {
jsCallData->args[ii] = v4->fromVariant(*((QVariant *)metaArgs[ii + 1]));
} else {
- jsCallData->args[ii] = v4->fromVariant(QVariant(type, metaArgs[ii + 1]));
+ jsCallData->args[ii] = v4->fromVariant(QVariant(QMetaType(type), metaArgs[ii + 1]));
}
}
@@ -1775,7 +1775,7 @@ void CallArgument::initAsType(int callType)
jsonValuePtr = new (&allocData) QJsonValue();
} else {
type = -1;
- qvariantPtr = new (&allocData) QVariant(callType, (void *)nullptr);
+ qvariantPtr = new (&allocData) QVariant(QMetaType(callType), (void *)nullptr);
}
}
@@ -1916,7 +1916,7 @@ bool CallArgument::fromValue(int callType, QV4::ExecutionEngine *engine, const Q
& (QMetaType::PointerToQObject | QMetaType::PointerToGadget)) {
// You can assign null or undefined to any pointer. The result is a nullptr.
if (value.isNull() || value.isUndefined()) {
- qvariantPtr = new (&allocData) QVariant(callType, nullptr);
+ qvariantPtr = new (&allocData) QVariant(QMetaType(callType), nullptr);
type = callType;
} else {
queryEngine = true;
@@ -1943,15 +1943,15 @@ bool CallArgument::fromValue(int callType, QV4::ExecutionEngine *engine, const Q
QObject *obj = ep->toQObject(v);
if (obj != nullptr && !QQmlMetaObject::canConvert(obj, mo)) {
- *qvariantPtr = QVariant(callType, nullptr);
+ *qvariantPtr = QVariant(QMetaType(callType), nullptr);
return false;
}
- *qvariantPtr = QVariant(callType, &obj);
+ *qvariantPtr = QVariant(QMetaType(callType), &obj);
return true;
}
- *qvariantPtr = QVariant(callType, (void *)nullptr);
+ *qvariantPtr = QVariant(QMetaType(callType), (void *)nullptr);
return false;
}
}
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp
index 7772b34c82..5bb82aeadf 100644
--- a/src/qml/jsruntime/qv4vme_moth.cpp
+++ b/src/qml/jsruntime/qv4vme_moth.cpp
@@ -463,7 +463,7 @@ ReturnedValue VME::exec(CppStackFrame *frame, ExecutionEngine *engine)
Scope scope(engine);
Scoped<QmlContext> qmlContext(scope, engine->qmlContext());
- QVariant resultVariant(function->aotFunction->returnType.id(), nullptr);
+ QVariant resultVariant(function->aotFunction->returnType, nullptr);
function->aotFunction->functionPtr(qmlContext->qmlContext()->asQQmlContext(), qmlContext->qmlScope(), resultVariant.data());
result = engine->fromVariant(resultVariant);
} else {