summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
-rw-r--r--src/corelib/kernel/qmetaobject.cpp7
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);
}
/*!