From: Jędrzej Nowacki Date: Fri, 6 Jan 2012 11:13:49 +0000 (+0100) Subject: Small QMetaType optimization. X-Git-Tag: qt-v5.0.0-alpha1~1944 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=64a735eed688e4dbf52aa3caf4caea53c4c211ec;p=profile%2Fivi%2Fqtbase.git Small QMetaType optimization. Prefer compile time check over a runtime. Change-Id: Ib78563083c765d1fd72217c5aa529d0cbb951130 Reviewed-by: Olivier Goffart --- diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index c5e3d21..7132a09 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -1434,12 +1434,12 @@ class TypeConstructor { static void *Construct(const int type, void *where, const T *copy) { QMetaType::Constructor ctor = 0; - if (type >= QMetaType::FirstGuiType && type <= QMetaType::LastGuiType) { + if (QTypeModuleInfo::IsGui) { Q_ASSERT(qMetaTypeGuiHelper); if (!qMetaTypeGuiHelper) return 0; ctor = qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].constructor; - } else if (type >= QMetaType::FirstWidgetsType && type <= QMetaType::LastWidgetsType) { + } else if (QTypeModuleInfo::IsWidget) { Q_ASSERT(qMetaTypeWidgetsHelper); if (!qMetaTypeWidgetsHelper) return 0; @@ -1526,12 +1526,12 @@ class TypeDestructor { static void Destruct(const int type, void *where) { QMetaType::Destructor dtor = 0; - if (type >= QMetaType::FirstGuiType && type <= QMetaType::LastGuiType) { + if (QTypeModuleInfo::IsGui) { Q_ASSERT(qMetaTypeGuiHelper); if (!qMetaTypeGuiHelper) return; dtor = qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].destructor; - } else if (type >= QMetaType::FirstWidgetsType && type <= QMetaType::LastWidgetsType) { + } else if (QTypeModuleInfo::IsWidget) { Q_ASSERT(qMetaTypeWidgetsHelper); if (!qMetaTypeWidgetsHelper) return; @@ -1600,12 +1600,12 @@ class SizeOf { struct SizeOfImpl { static int Size(const int type) { - if (type >= QMetaType::FirstGuiType && type <= QMetaType::LastGuiType) { + if (QTypeModuleInfo::IsGui) { Q_ASSERT(qMetaTypeGuiHelper); if (!qMetaTypeGuiHelper) return 0; return qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].size; - } else if (type >= QMetaType::FirstWidgetsType && type <= QMetaType::LastWidgetsType) { + } else if (QTypeModuleInfo::IsWidget) { Q_ASSERT(qMetaTypeWidgetsHelper); if (!qMetaTypeWidgetsHelper) return 0;