diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-05 11:23:03 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-11 12:56:21 +0200 |
commit | 8d03b13a59a5e3866c982eb14ca2dc57b687d218 (patch) | |
tree | 0a93eae7d9f55e77bcf4702c469e068f618e259b /src/qml/qml/qqmlvmemetaobject.cpp | |
parent | 745cce4391a8b6255605cb304d8bc14b11168423 (diff) |
QML: Port QV4::CompiledData::Alias to new special integer bitfield
Pick-to: 5.15 6.2 6.3
Task-number: QTBUG-99545
Change-Id: I554f9f903a39a83eaf601fd4fd932f685bf343d0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject.cpp')
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index 4ff4180201..0ee7e07579 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -235,7 +235,7 @@ void QQmlVMEMetaObjectEndpoint::tryConnect() const QV4::CompiledData::Alias *aliasData = &metaObject->compiledObject->aliasTable()[aliasId]; if (!aliasData->isObjectAlias()) { QQmlRefPointer<QQmlContextData> ctxt = metaObject->ctxt; - QObject *target = ctxt->idValue(aliasData->targetObjectId); + QObject *target = ctxt->idValue(aliasData->targetObjectId()); if (!target) return; @@ -975,16 +975,18 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * if (id < aliasCount) { const QV4::CompiledData::Alias *aliasData = &compiledObject->aliasTable()[id]; - if ((aliasData->flags & QV4::CompiledData::Alias::AliasPointsToPointerObject) && c == QMetaObject::ReadProperty) - *reinterpret_cast<void **>(a[0]) = nullptr; + if (aliasData->hasFlag(QV4::CompiledData::Alias::AliasPointsToPointerObject) + && c == QMetaObject::ReadProperty){ + *reinterpret_cast<void **>(a[0]) = nullptr; + } if (ctxt.isNull()) return -1; - while (aliasData->aliasToLocalAlias) + while (aliasData->isAliasToLocalAlias()) aliasData = &compiledObject->aliasTable()[aliasData->localAliasIndex]; - QObject *target = ctxt->idValue(aliasData->targetObjectId); + QObject *target = ctxt->idValue(aliasData->targetObjectId()); if (!target) return -1; @@ -1331,9 +1333,9 @@ bool QQmlVMEMetaObject::aliasTarget(int index, QObject **target, int *coreIndex, const int aliasId = index - propOffset() - compiledObject->nProperties; const QV4::CompiledData::Alias *aliasData = &compiledObject->aliasTable()[aliasId]; - while (aliasData->aliasToLocalAlias) + while (aliasData->isAliasToLocalAlias()) aliasData = &compiledObject->aliasTable()[aliasData->localAliasIndex]; - *target = ctxt->idValue(aliasData->targetObjectId); + *target = ctxt->idValue(aliasData->targetObjectId()); if (!*target) return false; @@ -1361,7 +1363,7 @@ void QQmlVMEMetaObject::connectAlias(int aliasId) } endpoint->metaObject = this; - endpoint->connect(ctxt->idValueBindings(aliasData->targetObjectId)); + endpoint->connect(ctxt->idValueBindings(aliasData->targetObjectId())); endpoint->tryConnect(); } |