diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-08 12:42:29 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-13 16:03:58 +0100 |
commit | 21cf48781655e03c099e54f180f78e7435367386 (patch) | |
tree | 20263924aee9b52b02f29c6719d9237f83bdfa86 /src/qml/common | |
parent | 53f75b7f894ba248554df49627d2f17b3f127e23 (diff) |
QtQml: Move BindingPropertyData into the base CU
Change-Id: I2edcb2c324919a1131ae490bee9c9b1140097b09
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/common')
-rw-r--r-- | src/qml/common/qv4compileddata_p.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/qml/common/qv4compileddata_p.h b/src/qml/common/qv4compileddata_p.h index 69d3462912..d9268c8407 100644 --- a/src/qml/common/qv4compileddata_p.h +++ b/src/qml/common/qv4compileddata_p.h @@ -55,6 +55,7 @@ class QIODevice; class QQmlTypeNameCache; class QQmlType; class QQmlEngine; +class QQmlPropertyData; namespace QQmlPrivate { struct AOTCompiledFunction; @@ -76,6 +77,9 @@ class EvalISelFactory; namespace CompiledData { +// index is per-object binding index +using BindingPropertyData = QVector<const QQmlPropertyData *>; + struct String; struct Function; struct Lookup; @@ -1464,6 +1468,11 @@ struct CompilationUnit final : public QQmlRefCounted<CompilationUnit> std::unique_ptr<QString> icRootName; QHash<QString, InlineComponentData> inlineComponentData; + // index is object index. This allows fast access to the + // property data when initializing bindings, avoiding expensive + // lookups by string (property name). + QVector<BindingPropertyData> bindingPropertyDataPerObject; + public: using CompiledObject = CompiledData::Object; |