diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2023-02-16 11:29:30 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2023-03-02 17:54:30 +0100 |
commit | 35152b432e82fc274c3983d0f369666a899cde49 (patch) | |
tree | 8c4fb849f36d0d1b03685a431823c9608a786bd4 /src/qml/qml/qqmlirloader.cpp | |
parent | a703701394820fcfffb544a5bf7c464410cdc0a2 (diff) |
QML: Add an "Addressable" value to ValueTypeBehavior
Task-number: QTBUG-94807
Change-Id: I8c78faa99fc4c4b2ffd8c89f1037fc7569212c73
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/qml/qml/qqmlirloader.cpp')
-rw-r--r-- | src/qml/qml/qqmlirloader.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlirloader.cpp b/src/qml/qml/qqmlirloader.cpp index 5137c4c1ab..f3e6b9ec39 100644 --- a/src/qml/qml/qqmlirloader.cpp +++ b/src/qml/qml/qqmlirloader.cpp @@ -57,7 +57,7 @@ void QQmlIRLoader::load() const auto createValueTypePragma = [&]( Pragma::PragmaType type, - Pragma::ValueTypeBehaviorValue value) { + Pragma::ValueTypeBehaviorValues value) { createPragma(type)->valueTypeBehavior = value; }; @@ -80,8 +80,13 @@ void QQmlIRLoader::load() if (unit->flags & QV4::CompiledData::Unit::NativeMethodsAcceptThisObject) createNativeMethodPragma(Pragma::NativeMethodBehavior, Pragma::AcceptThisObject); + Pragma::ValueTypeBehaviorValues valueTypeBehavior = {}; if (unit->flags & QV4::CompiledData::Unit::ValueTypesCopied) - createValueTypePragma(Pragma::ValueTypeBehavior, Pragma::Copy); + valueTypeBehavior |= Pragma::Copy; + if (unit->flags & QV4::CompiledData::Unit::ValueTypesAddressable) + valueTypeBehavior |= Pragma::Addressable; + if (valueTypeBehavior) + createValueTypePragma(Pragma::ValueTypeBehavior, valueTypeBehavior); for (uint i = 0; i < qmlUnit->nObjects; ++i) { const QV4::CompiledData::Object *serializedObject = qmlUnit->objectAt(i); |