From f05d1b0856be2e43dacb5da660b4714a64a3a0ae Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 23 Jun 2018 08:56:40 -0700 Subject: QMetaType: remove compatibility code for MSVC 2013 We use the constexpr code for MSVC 2015. Change-Id: I91f63171877743978cb3fffd153ad52a3ee293d0 Reviewed-by: Friedemann Kleint --- src/corelib/kernel/qmetatype.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'src/corelib/kernel') diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 0e57cb8cba..13c92d35f4 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -835,15 +835,14 @@ void QMetaType::registerStreamOperators(int idx, SaveOperator saveOp, } #endif // QT_NO_DATASTREAM -#if defined(Q_COMPILER_CONSTEXPR) || (defined(Q_CC_MSVC) && Q_CC_MSVC >= 1900) // We don't officially support constexpr in MSVC 2015, but the limited support it // has is enough for the code below. -# define STRINGIFY_TYPE_NAME(MetaTypeName, TypeId, RealName) \ +#define STRINGIFY_TYPE_NAME(MetaTypeName, TypeId, RealName) \ #RealName "\0" -# define CALCULATE_TYPE_LEN(MetaTypeName, TypeId, RealName) \ +#define CALCULATE_TYPE_LEN(MetaTypeName, TypeId, RealName) \ short(sizeof(#RealName)), -# define MAP_TYPE_ID_TO_IDX(MetaTypeName, TypeId, RealName) \ +#define MAP_TYPE_ID_TO_IDX(MetaTypeName, TypeId, RealName) \ TypeId, namespace { @@ -911,10 +910,9 @@ template struct MetaTypeOffsets::Value> metaTypeNames {}; -# undef STRINGIFY_TYPE_NAME -# undef CALCULATE_TYPE_LEN -# undef MAP_TYPE_ID_TO_IDX -#endif +#undef STRINGIFY_TYPE_NAME +#undef CALCULATE_TYPE_LEN +#undef MAP_TYPE_ID_TO_IDX /*! Returns the type name associated with the given \a typeId, or a null @@ -926,20 +924,8 @@ constexpr MetaTypeOffsets:: const char *QMetaType::typeName(int typeId) { const uint type = typeId; -#define QT_METATYPE_TYPEID_TYPENAME_CONVERTER(MetaTypeName, TypeId, RealName) \ - case QMetaType::MetaTypeName: return #RealName; break; - if (Q_LIKELY(type <= QMetaType::HighestInternalId)) { -#if defined(Q_COMPILER_CONSTEXPR) || (defined(Q_CC_MSVC) && Q_CC_MSVC >= 1900) return metaTypeNames[typeId]; -#else - switch (QMetaType::Type(type)) { - QT_FOR_EACH_STATIC_TYPE(QT_METATYPE_TYPEID_TYPENAME_CONVERTER) - case QMetaType::UnknownType: - case QMetaType::User: - break; - } -#endif } else if (Q_UNLIKELY(type < QMetaType::User)) { return nullptr; // It can happen when someone cast int to QVariant::Type, we should not crash... } -- cgit v1.2.3