From cc1d9671b391f99a5fe5d690c92e940ecc86d6de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Tue, 18 Nov 2014 11:46:53 +0100 Subject: Micro-optimize QVariant enum to number conversions Change-Id: I2296d9417e0d1ef08084fb259885ac2a3eff9fe8 Reviewed-by: Olivier Goffart Reviewed-by: Thiago Macieira --- src/corelib/kernel/qvariant.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 22e8263f77..24264127d4 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -220,8 +220,9 @@ static qlonglong qConvertToNumber(const QVariant::Private *d, bool *ok) return qlonglong(qMetaTypeUNumber(d)); } - if (QMetaType::typeFlags(d->type) & QMetaType::IsEnumeration) { - switch (QMetaType::sizeOf(d->type)) { + QMetaType typeInfo(d->type); + if (typeInfo.flags() & QMetaType::IsEnumeration) { + switch (typeInfo.sizeOf()) { case 1: return d->is_shared ? *reinterpret_cast(d->data.shared->ptr) : d->data.sc; case 2: @@ -268,8 +269,9 @@ static qulonglong qConvertToUnsignedNumber(const QVariant::Private *d, bool *ok) return qMetaTypeUNumber(d); } - if (QMetaType::typeFlags(d->type) & QMetaType::IsEnumeration) { - switch (QMetaType::sizeOf(d->type)) { + QMetaType typeInfo(d->type); + if (typeInfo.flags() & QMetaType::IsEnumeration) { + switch (typeInfo.sizeOf()) { case 1: return d->is_shared ? *reinterpret_cast(d->data.shared->ptr) : d->data.uc; case 2: -- cgit v1.2.3