aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2016-05-23 14:29:43 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2016-05-24 05:55:06 +0000
commitec2b2a5f5d804095b6b2b8575b1cd1b75a8335ff (patch)
tree6817868777a3fca03f25aa9fc17d6202e442f910 /src
parent46c6db6f58fadb2bc4d3e9be5a7f93824e43db64 (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.cpp7
-rw-r--r--src/qml/compiler/qv4compileddata_p.h7
-rw-r--r--src/qml/qml/qqmlvmemetaobject.cpp4
-rw-r--r--src/qml/qml/qqmlvmemetaobject_p.h3
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;
};