From f6fa4b39ee32ba4a5c6a3db5581dd50b3afc7a47 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Wed, 19 May 2021 08:42:20 +0200 Subject: QMetaType: Don't normalize name which should already be normalized The name stored in a QMetaTypeInterface should already be normalized, as a static metatype uses typenameHelper, which takes care of normalization via QTypeNormalizer. For dynamic metatypes, we don't have that guarantee, but those can only be created by Qt, as there is no public API for it. We can thus ensure that we only create normalized typenames (which we currently do anyway), and skip the normalization in registerCustomType. Change-Id: I18728031825cd39fdbe17cad0fbc6e3b5fd03c93 Reviewed-by: Qt CI Bot Reviewed-by: Ulf Hermann Reviewed-by: Andrei Golubev --- src/corelib/kernel/qmetatype.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/corelib/kernel/qmetatype.cpp') diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 65745bf06a..e8c631f2d1 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -120,11 +120,10 @@ struct QMetaTypeCustomRegistry QWriteLocker l(&lock); if (ti->typeId) return ti->typeId; - QByteArray name = + QByteArray name = ti->name; #ifndef QT_NO_QOBJECT - QMetaObject::normalizedType + Q_ASSERT(name == QMetaObject::normalizedType(ti->name)); #endif - (ti->name); if (auto ti2 = aliases.value(name)) { ti->typeId.storeRelaxed(ti2->typeId.loadRelaxed()); return ti2->typeId; -- cgit v1.2.3