diff options
Diffstat (limited to 'src/qml/common/qv4compileddata_p.h')
| -rw-r--r-- | src/qml/common/qv4compileddata_p.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/qml/common/qv4compileddata_p.h b/src/qml/common/qv4compileddata_p.h index 3db3010885..8641ee3b26 100644 --- a/src/qml/common/qv4compileddata_p.h +++ b/src/qml/common/qv4compileddata_p.h @@ -770,6 +770,7 @@ private: // object id index (in QQmlContextData::idValues) using TargetObjectIdField = quint32_le_bitfield_member<0, 31>; using AliasToLocalAliasField = quint32_le_bitfield_member<31, 1>; + using IdIndexField = quint32_le_bitfield_member<0, 32>; public: @@ -781,12 +782,8 @@ public: Q_DECLARE_FLAGS(Flags, Flag) quint32_le_bitfield_union<NameIndexField, FlagsField> nameIndexAndFlags; - - union { - quint32_le idIndex; // string index - quint32_le_bitfield_union<TargetObjectIdField, AliasToLocalAliasField> - targetObjectIdAndAliasToLocalAlias; - }; + quint32_le_bitfield_union<IdIndexField, TargetObjectIdField, AliasToLocalAliasField> + idIndexAndTargetObjectIdAndAliasToLocalAlias; union { quint32_le propertyNameIndex; // string index @@ -827,24 +824,35 @@ public: return encodedMetaPropertyIndex == -1; } + quint32 idIndex() const + { + return idIndexAndTargetObjectIdAndAliasToLocalAlias.get<IdIndexField>(); + } + + void setIdIndex(quint32 idIndex) + { + idIndexAndTargetObjectIdAndAliasToLocalAlias.set<IdIndexField>(idIndex); + } + + bool isAliasToLocalAlias() const { - return targetObjectIdAndAliasToLocalAlias.get<AliasToLocalAliasField>(); + return idIndexAndTargetObjectIdAndAliasToLocalAlias.get<AliasToLocalAliasField>(); } void setIsAliasToLocalAlias(bool isAliasToLocalAlias) { - targetObjectIdAndAliasToLocalAlias.set<AliasToLocalAliasField>(isAliasToLocalAlias); + idIndexAndTargetObjectIdAndAliasToLocalAlias.set<AliasToLocalAliasField>(isAliasToLocalAlias); } quint32 targetObjectId() const { - return targetObjectIdAndAliasToLocalAlias.get<TargetObjectIdField>(); + return idIndexAndTargetObjectIdAndAliasToLocalAlias.get<TargetObjectIdField>(); } void setTargetObjectId(quint32 targetObjectId) { - targetObjectIdAndAliasToLocalAlias.set<TargetObjectIdField>(targetObjectId); + idIndexAndTargetObjectIdAndAliasToLocalAlias.set<TargetObjectIdField>(targetObjectId); } }; static_assert(sizeof(Alias) == 20, "Alias structure needs to have the expected size to be binary compatible on disk when generated by host compiler and loaded by target"); |
