aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/common
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-01-08 16:29:51 +0100
committerUlf Hermann <ulf.hermann@qt.io>2024-01-13 16:03:59 +0100
commit46911d539a5eb22e86a3a62254f1fecb8813529b (patch)
tree8bcc8267076f7050ff20f11f63cc4f9944265143 /src/qml/common
parentec5b042736410440b10a00c70715b6701f65ce10 (diff)
QtQml: Move binding, object and parser status counts to base CU
Change-Id: Id52e3d50b02649010ebcb2309253aa689a536770 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/common')
-rw-r--r--src/qml/common/qv4compileddata.cpp21
-rw-r--r--src/qml/common/qv4compileddata_p.h8
2 files changed, 29 insertions, 0 deletions
diff --git a/src/qml/common/qv4compileddata.cpp b/src/qml/common/qv4compileddata.cpp
index 16ef43f678..9e9d8831a1 100644
--- a/src/qml/common/qv4compileddata.cpp
+++ b/src/qml/common/qv4compileddata.cpp
@@ -170,6 +170,27 @@ ResolvedTypeReference *CompilationUnit::resolvedType(QMetaType type) const
}
+int CompilationUnit::totalBindingsCount() const
+{
+ if (!icRootName)
+ return m_totalBindingsCount;
+ return inlineComponentData[*icRootName].totalBindingCount;
+}
+
+int CompilationUnit::totalObjectCount() const
+{
+ if (!icRootName)
+ return m_totalObjectCount;
+ return inlineComponentData[*icRootName].totalObjectCount;
+}
+
+int CompilationUnit::totalParserStatusCount() const
+{
+ if (!icRootName)
+ return m_totalParserStatusCount;
+ return inlineComponentData[*icRootName].totalParserStatusCount;
+}
+
} // namespace CompiledData
} // namespace QV4
diff --git a/src/qml/common/qv4compileddata_p.h b/src/qml/common/qv4compileddata_p.h
index 1d6cbb9742..893ba6c671 100644
--- a/src/qml/common/qv4compileddata_p.h
+++ b/src/qml/common/qv4compileddata_p.h
@@ -1474,6 +1474,10 @@ struct CompilationUnit final : public QQmlRefCounted<CompilationUnit>
std::unique_ptr<CompilationUnitMapper> backingFile;
+ int m_totalBindingsCount = 0; // Number of bindings used in this type
+ int m_totalParserStatusCount = 0; // Number of instantiated types that are QQmlParserStatus subclasses
+ int m_totalObjectCount = 0; // Number of objects explicitly instantiated
+
std::unique_ptr<QString> icRootName;
QHash<QString, InlineComponentData> inlineComponentData;
@@ -1626,6 +1630,10 @@ public:
return propertyCaches.at(/*root object*/0);
}
+ int totalBindingsCount() const;
+ int totalParserStatusCount() const;
+ int totalObjectCount() const;
+
int inlineComponentId(const QString &inlineComponentName) const
{
for (uint i = 0; i < qmlData->nObjects; ++i) {