aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/common
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-01-08 12:42:29 +0100
committerUlf Hermann <ulf.hermann@qt.io>2024-01-13 16:03:58 +0100
commit21cf48781655e03c099e54f180f78e7435367386 (patch)
tree20263924aee9b52b02f29c6719d9237f83bdfa86 /src/qml/common
parent53f75b7f894ba248554df49627d2f17b3f127e23 (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.h9
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;