diff options
| author | Marc Mutz <marc.mutz@qt.io> | 2025-04-08 15:10:29 +0200 |
|---|---|---|
| committer | Marc Mutz <marc.mutz@qt.io> | 2025-04-11 20:59:59 +0200 |
| commit | a481a79a97c6e63a77cfae8a15e060e203afdc40 (patch) | |
| tree | cb8feedd2f29e85534aa04fbadffe95f1dc0c81e /src/corelib/kernel/qmetaobject.cpp | |
| parent | cac63042b1303511ef41642b3290e6d54d1a76b8 (diff) | |
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.
Pick-to: 6.9
Task-number: QTBUG-135572
Change-Id: I23834c201fbcd1780c50e85cf8a15ea5e4a94c74
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
| -rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
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 |
