aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qqmlbind.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2022-05-04 15:26:30 +0200
committerUlf Hermann <ulf.hermann@qt.io>2022-05-11 12:56:22 +0200
commit36ebee4e69182f0e44d87691d4740b271e1dcf38 (patch)
treec6f38a2fbef397775d3c8e0031e570fbacd302be /src/qml/types/qqmlbind.cpp
parentdea6ba50377df75046625abb0128e0250c01b2c9 (diff)
QML: Port QV4::CompiledData::Binding to new special integer bitfield
Pick-to: 5.15 6.2 6.3 Task-number: QTBUG-99545 Change-Id: I9f8bc5fa45c61f77ee95b055a3d8de001da8f8c5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/types/qqmlbind.cpp')
-rw-r--r--src/qml/types/qqmlbind.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/qml/types/qqmlbind.cpp b/src/qml/types/qqmlbind.cpp
index 1041baa23b..ec3ca23c78 100644
--- a/src/qml/types/qqmlbind.cpp
+++ b/src/qml/types/qqmlbind.cpp
@@ -731,7 +731,7 @@ static QQmlAnyBinding createBinding(
const QQmlRefPointer<QQmlContextData> &contextData,
QObject *scopeObject)
{
- switch (binding->type) {
+ switch (binding->type()) {
case QV4::CompiledData::Binding::Type_Translation:
case QV4::CompiledData::Binding::Type_TranslationById:
return QQmlAnyBinding::createTranslationBinding(prop, compilationUnit, binding, scopeObject);
@@ -767,8 +767,9 @@ void QQmlBindPrivate::decodeBinding(
const QString propertyName = propertyPrefix
+ compilationUnit->stringAt(binding->propertyNameIndex);
- if (binding->type == QV4::CompiledData::Binding::Type_GroupProperty
- || binding->type == QV4::CompiledData::Binding::Type_AttachedProperty) {
+ switch (binding->type()) {
+ case QV4::CompiledData::Binding::Type_GroupProperty:
+ case QV4::CompiledData::Binding::Type_AttachedProperty: {
const QString pre = propertyName + u'.';
const QV4::CompiledData::Object *subObj
= compilationUnit->objectAt(binding->value.objectIndex);
@@ -777,6 +778,9 @@ void QQmlBindPrivate::decodeBinding(
decodeBinding(q, pre, deferredData, subBinding, immediateState);
return;
}
+ default:
+ break;
+ }
QQmlBindEntry entry;
QQmlContext *context = qmlContext(q);
@@ -815,7 +819,7 @@ void QQmlBindPrivate::decodeBinding(
entry.currentKind = entry.current.set(binding, entry.currentKind);
};
- switch (binding->type) {
+ switch (binding->type()) {
case QV4::CompiledData::Binding::Type_AttachedProperty:
case QV4::CompiledData::Binding::Type_GroupProperty:
Q_UNREACHABLE(); // Handled above
@@ -849,6 +853,9 @@ void QQmlBindPrivate::decodeBinding(
case QV4::CompiledData::Binding::Type_Null:
setVariant(QVariant::fromValue(nullptr));
break;
+ case QV4::CompiledData::Binding::Type_Object:
+ case QV4::CompiledData::Binding::Type_Invalid:
+ break;
}
entries.append(std::move(entry));