From 35152b432e82fc274c3983d0f369666a899cde49 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 16 Feb 2023 11:29:30 +0100 Subject: QML: Add an "Addressable" value to ValueTypeBehavior Task-number: QTBUG-94807 Change-Id: I8c78faa99fc4c4b2ffd8c89f1037fc7569212c73 Reviewed-by: Fabian Kosmale Reviewed-by: Qt CI Bot --- src/qml/qml/qqmlirloader.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/qml/qml/qqmlirloader.cpp') 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); -- cgit v1.2.3