Cleanup QMetaClassInfo
Change-Id: I0b4fa4568f8479106053e0fae72fc802fca74a65 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>bb10
parent
630c7b4811
commit
f5e8f9c814
|
|
@ -1163,7 +1163,7 @@ QMetaClassInfo QMetaObject::classInfo(int index) const
|
|||
QMetaClassInfo result;
|
||||
if (i >= 0 && i < priv(d.data)->classInfoCount) {
|
||||
result.mobj = this;
|
||||
result.handle = priv(d.data)->classInfoData + 2*i;
|
||||
result.data = { d.data + priv(d.data)->classInfoData + i * QMetaClassInfo::Data::Size };
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -3554,7 +3554,7 @@ const char *QMetaClassInfo::name() const
|
|||
{
|
||||
if (!mobj)
|
||||
return nullptr;
|
||||
return rawStringData(mobj, mobj->d.data[handle]);
|
||||
return rawStringData(mobj, data.name());
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
@ -3566,7 +3566,7 @@ const char* QMetaClassInfo::value() const
|
|||
{
|
||||
if (!mobj)
|
||||
return nullptr;
|
||||
return rawStringData(mobj, mobj->d.data[handle + 1]);
|
||||
return rawStringData(mobj, data.value());
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -351,13 +351,22 @@ private:
|
|||
class Q_CORE_EXPORT QMetaClassInfo
|
||||
{
|
||||
public:
|
||||
Q_DECL_CONSTEXPR inline QMetaClassInfo() : mobj(nullptr), handle(0) {}
|
||||
Q_DECL_CONSTEXPR inline QMetaClassInfo() : mobj(nullptr), data({ nullptr }) {}
|
||||
const char *name() const;
|
||||
const char *value() const;
|
||||
inline const QMetaObject *enclosingMetaObject() const { return mobj; }
|
||||
private:
|
||||
struct Data {
|
||||
enum { Size = 2 };
|
||||
|
||||
uint name() const { return d[0]; }
|
||||
uint value() const { return d[1]; }
|
||||
|
||||
const uint *d;
|
||||
};
|
||||
|
||||
const QMetaObject *mobj;
|
||||
uint handle;
|
||||
Data data;
|
||||
friend struct QMetaObject;
|
||||
};
|
||||
Q_DECLARE_TYPEINFO(QMetaClassInfo, Q_MOVABLE_TYPE);
|
||||
|
|
|
|||
Loading…
Reference in New Issue