From 461197292ad0462dee03ec03bcf1f2d61a300ebc Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Mon, 8 Feb 2021 14:07:01 +0100 Subject: QQmlInterceptorMetaObject::intercept: Avoid metatype<->id ping-pong There is no need to extract the metatype id to know whether the type is valid (aka != UnknownType). Moreover, as we already have a metatype, there is no need to do the typeid -> metatype lookup. Task-number: QTBUG-88766 Change-Id: I5f9512aa6e06b0d89be8d3cad970f12319dab156 Reviewed-by: Ulf Hermann --- src/qml/qml/qqmlvmemetaobject.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/qml/qml/qqmlvmemetaobject.cpp') diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index bea8fc06f7..61ae1d4a06 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -322,9 +322,8 @@ bool QQmlInterceptorMetaObject::intercept(QMetaObject::Call c, int id, void **a) const int valueIndex = vi->m_propertyIndex.valueTypeIndex(); const QQmlData *data = QQmlData::get(object); const QMetaType metaType = data->propertyCache->property(id)->propType(); - const int type = metaType.id(); - if (type != QMetaType::UnknownType) { + if (metaType.isValid()) { if (valueIndex != -1) { QQmlGadgetPtrWrapper *valueType = QQmlGadgetPtrWrapper::instance( data->context->engine(), metaType); @@ -362,7 +361,7 @@ bool QQmlInterceptorMetaObject::intercept(QMetaObject::Call c, int id, void **a) // QMetaProperty valueProp = valueType->property(valueIndex); - QVariant newValue(QMetaType(type), a[0]); + QVariant newValue(metaType, a[0]); valueType->read(object, id); QVariant prevComponentValue = valueProp.read(valueType); @@ -383,7 +382,7 @@ bool QQmlInterceptorMetaObject::intercept(QMetaObject::Call c, int id, void **a) if (updated) return true; } else { - vi->write(QVariant(QMetaType(type), a[0])); + vi->write(QVariant(metaType, a[0])); return true; } } -- cgit v1.2.3