From 679492ecc68880babb61b4567ea5f8ef6f6293b3 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 30 Apr 2019 10:16:12 +0200 Subject: Clean up QMetaEnum code Change-Id: I9c1fcfd72890fb3d69d2d9caed7f3cff931c3ff6 Reviewed-by: Simon Hausmann Reviewed-by: Ulf Hermann --- src/corelib/kernel/qmetaobject.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/corelib/kernel/qmetaobject.h') diff --git a/src/corelib/kernel/qmetaobject.h b/src/corelib/kernel/qmetaobject.h index 801cf8f6eb..fc7b84011b 100644 --- a/src/corelib/kernel/qmetaobject.h +++ b/src/corelib/kernel/qmetaobject.h @@ -221,7 +221,7 @@ inline bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2) class Q_CORE_EXPORT QMetaEnum { public: - Q_DECL_CONSTEXPR inline QMetaEnum() : mobj(nullptr), handle(0) {} + Q_DECL_CONSTEXPR inline QMetaEnum() : mobj(nullptr), data({ nullptr }) {} const char *name() const; const char *enumName() const; @@ -253,9 +253,23 @@ public: } private: + struct Data { + enum { Size = 5 }; + quint32 name() const { return d[0]; } + quint32 alias() const { return d[1]; } + quint32 flags() const { return d[2]; } + qint32 keyCount() const { return static_cast(d[3]); } + quint32 data() const { return d[4]; } + + const uint *d; + }; + + QMetaEnum(const QMetaObject *mobj, int index); + const QMetaObject *mobj; - uint handle; + Data data; friend struct QMetaObject; + friend struct QMetaObjectPrivate; }; Q_DECLARE_TYPEINFO(QMetaEnum, Q_MOVABLE_TYPE); -- cgit v1.2.3