From 1f2565e96db99cc6dce696d50a3133439b57bc50 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 8 Apr 2025 15:10:29 +0200 Subject: [PATCH] QMetaObject: don't use QMetaType::fromName() in typeFromTypeInfo() The former will try to normalize the type name, but everything stored in a QMetaObject is already in normalized form. So, if the first lookup fails, the normalized one won't succeed either. Use qMetaTypeTypeInternal(), which doesn't normalize. At a minimum, this will fail faster. If we're lucky, the missing round-trip via QMetaType(int).id() will help the positive case, too. But if it does, it's lost in the statistical noise of the benchmark. IOW: no measurable performance impact. Task-number: QTBUG-135572 Change-Id: I23834c201fbcd1780c50e85cf8a15ea5e4a94c74 Reviewed-by: Thiago Macieira Reviewed-by: Ulf Hermann (cherry picked from commit a481a79a97c6e63a77cfae8a15e060e203afdc40) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/kernel/qmetaobject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 9dd9c7eee43..2876162d737 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -165,7 +165,7 @@ static inline int typeFromTypeInfo(const QMetaObject *mo, uint typeInfo) { if (!(typeInfo & IsUnresolvedType)) return typeInfo; - return QMetaType::fromName(stringDataView(mo, typeInfo & TypeNameIndexMask)).id(); + return qMetaTypeTypeInternal(stringDataView(mo, typeInfo & TypeNameIndexMask)); } static auto parse_scope(QByteArrayView qualifiedKey) noexcept