diff options
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
| -rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index f19970b52d1..3c0ee3851fe 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -2493,9 +2493,14 @@ QMetaMethod::Access QMetaMethod::access() const */ QMetaMethod::MethodType QMetaMethod::methodType() const { + constexpr int MethodShift = QtPrivate::qConstexprCountTrailingZeroBits(MethodTypeMask); + static_assert(MethodMethod >> MethodShift == Method); + static_assert(MethodSignal >> MethodShift == Signal); + static_assert(MethodSlot >> MethodShift == Slot); + static_assert(MethodConstructor >> MethodShift == Constructor); if (!mobj) return QMetaMethod::Method; - return (QMetaMethod::MethodType)((data.flags() & MethodTypeMask)>>2); + return MethodType((data.flags() & MethodTypeMask) >> MethodShift); } /*! |
