diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2016-05-23 14:29:43 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2016-05-24 05:55:06 +0000 |
commit | ec2b2a5f5d804095b6b2b8575b1cd1b75a8335ff (patch) | |
tree | 6817868777a3fca03f25aa9fc17d6202e442f910 /src | |
parent | 46c6db6f58fadb2bc4d3e9be5a7f93824e43db64 (diff) |
Fold QQmlVMEMetaData::Alias::flags into QV4::CompiledData::Alias::flags
We only need one bit, so this is easy to merge.
Change-Id: I98bf882b8c1bf10f2172a9e22331d621985d3ed4
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/compiler/qqmltypecompiler.cpp | 7 | ||||
-rw-r--r-- | src/qml/compiler/qv4compileddata_p.h | 7 | ||||
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 4 | ||||
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject_p.h | 3 |
4 files changed, 8 insertions, 13 deletions
diff --git a/src/qml/compiler/qqmltypecompiler.cpp b/src/qml/compiler/qqmltypecompiler.cpp index cc8043ea4e..097d072734 100644 --- a/src/qml/compiler/qqmltypecompiler.cpp +++ b/src/qml/compiler/qqmltypecompiler.cpp @@ -1588,7 +1588,6 @@ bool QQmlComponentAndAliasResolver::resolveAliases() int propIdx = -1; int notifySignal = -1; - int flags = 0; int type = 0; bool writable = false; bool resettable = false; @@ -1605,7 +1604,7 @@ bool QQmlComponentAndAliasResolver::resolveAliases() else type = typeRef->component->metaTypeId; - flags |= QML_ALIAS_FLAG_PTR; + alias->flags |= QV4::CompiledData::Alias::AliasPointsToPointerObject; propertyFlags |= QQmlPropertyData::IsQObjectDerived; } else { QQmlPropertyCache *targetCache = propertyCaches.at(targetObjectIndex); @@ -1657,13 +1656,13 @@ bool QQmlComponentAndAliasResolver::resolveAliases() propertyFlags |= QQmlPropertyData::IsQVariant; if (targetProperty->isQObject()) - flags |= QML_ALIAS_FLAG_PTR; + alias->flags |= QV4::CompiledData::Alias::AliasPointsToPointerObject; } } } alias->encodedMetaPropertyIndex = propIdx; - QQmlVMEMetaData::AliasData aliasData = { flags, notifySignal }; + QQmlVMEMetaData::AliasData aliasData = { notifySignal }; typedef QQmlVMEMetaData VMD; QByteArray &dynamicData = (*vmeMetaObjectData)[objectIndex]; diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index c3a20e9366..3c2d895bff 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -367,10 +367,11 @@ struct Property struct Alias { enum Flags { IsReadOnly = 0x1, - Resolved = 0x2 + Resolved = 0x2, + AliasPointsToPointerObject = 0x4 }; - quint32 nameIndex : 30; - quint32 flags : 2; + quint32 nameIndex : 29; + quint32 flags : 3; union { quint32 idIndex; // string index quint32 targetObjectId; // object id index (in QQmlContextData::idValues) diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index bb02c2c218..b0b7995ae2 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -833,11 +833,9 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * id -= propertyCount; if (id < aliasCount) { - - QQmlVMEMetaData::AliasData *d = metaData->aliasData() + id; const QV4::CompiledData::Alias *aliasData = &compiledObject->aliasTable()[id]; - if (d->flags & QML_ALIAS_FLAG_PTR && c == QMetaObject::ReadProperty) + if ((aliasData->flags & QV4::CompiledData::Alias::AliasPointsToPointerObject) && c == QMetaObject::ReadProperty) *reinterpret_cast<void **>(a[0]) = 0; if (!ctxt) return -1; diff --git a/src/qml/qml/qqmlvmemetaobject_p.h b/src/qml/qml/qqmlvmemetaobject_p.h index d70ee88b20..f9f9ec47af 100644 --- a/src/qml/qml/qqmlvmemetaobject_p.h +++ b/src/qml/qml/qqmlvmemetaobject_p.h @@ -74,15 +74,12 @@ QT_BEGIN_NAMESPACE -#define QML_ALIAS_FLAG_PTR 0x00000001 - struct QQmlVMEMetaData { // Make sure this structure is always aligned to int int dummy; struct AliasData { - int flags; int notifySignal; }; |