From 46911d539a5eb22e86a3a62254f1fecb8813529b Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 8 Jan 2024 16:29:51 +0100 Subject: QtQml: Move binding, object and parser status counts to base CU Change-Id: Id52e3d50b02649010ebcb2309253aa689a536770 Reviewed-by: Fabian Kosmale --- src/qml/common/qv4compileddata.cpp | 21 +++++++++++++++++++++ src/qml/common/qv4compileddata_p.h | 8 ++++++++ 2 files changed, 29 insertions(+) (limited to 'src/qml/common') 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 std::unique_ptr 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 icRootName; QHash 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) { -- cgit v1.2.3