summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2019-04-30 10:16:12 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-06-11 19:39:53 +0200
commit679492ecc68880babb61b4567ea5f8ef6f6293b3 (patch)
tree8b6102b3770bc489433e84e45efae70b28208ff4 /src/corelib/kernel/qmetaobject.h
parentee709e32366135fb7507b74b8e75d637772b166e (diff)
Clean up QMetaEnum code
Change-Id: I9c1fcfd72890fb3d69d2d9caed7f3cff931c3ff6 Reviewed-by: Simon Hausmann <hausmann@gmail.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.h')
-rw-r--r--src/corelib/kernel/qmetaobject.h18
1 files changed, 16 insertions, 2 deletions
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<qint32>(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);