diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-10 08:42:08 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-18 21:37:50 +0100 |
commit | 07d99f8787f22bd9053d8f6280ac5118194148c6 (patch) | |
tree | 4a5ca1566b91a0ca23af9fa490a8fccde1371f2d /src/qml/jsruntime/qv4executablecompilationunit_p.h | |
parent | 24c7c153faaeec04a4793e13449efde34dd87ed5 (diff) |
QtQml: Move the property cache creator interface into the base CU
Change-Id: I521b00754593dee600465047b3fe9a57d614bc77
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4executablecompilationunit_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4executablecompilationunit_p.h | 46 |
1 files changed, 10 insertions, 36 deletions
diff --git a/src/qml/jsruntime/qv4executablecompilationunit_p.h b/src/qml/jsruntime/qv4executablecompilationunit_p.h index 67a61d0c91..0f0f8af399 100644 --- a/src/qml/jsruntime/qv4executablecompilationunit_p.h +++ b/src/qml/jsruntime/qv4executablecompilationunit_p.h @@ -157,20 +157,10 @@ public: } // --- interface for QQmlPropertyCacheCreator - using CompiledObject = const CompiledData::Object; - using CompiledFunction = const CompiledData::Function; - using CompiledBinding = const CompiledData::Binding; - - // Empty dummy. We don't need to do this when loading from cache. - class IdToObjectMap - { - public: - void insert(int, int) {} - void clear() {} - - // We have already checked uniqueness of IDs when creating the CU - bool contains(int) { return false; } - }; + using CompiledObject = CompiledData::CompilationUnit::CompiledObject; + using CompiledFunction = CompiledData::CompilationUnit::CompiledFunction; + using CompiledBinding = CompiledData::CompilationUnit::CompiledBinding; + using IdToObjectMap = CompiledData::CompilationUnit::IdToObjectMap; using ListPropertyAssignBehavior = CompiledData::CompilationUnit::ListPropertyAssignBehavior; ListPropertyAssignBehavior listPropertyAssignBehavior() const @@ -190,10 +180,10 @@ public: bool isESModule() const { return m_compilationUnit->isESModule(); } bool isSharedLibrary() const { return m_compilationUnit->isSharedLibrary(); } - int objectCount() const { return qmlData()->nObjects; } + int objectCount() const { return m_compilationUnit->objectCount(); } const CompiledObject *objectAt(int index) const { - return qmlData()->objectAt(index); + return m_compilationUnit->objectAt(index); } int importCount() const { return m_compilationUnit->importCount(); } @@ -204,34 +194,18 @@ public: Heap::Object *templateObjectAt(int index) const; - struct FunctionIterator - { - FunctionIterator(const CompiledData::Unit *unit, const CompiledObject *object, int index) - : unit(unit), object(object), index(index) {} - const CompiledData::Unit *unit; - const CompiledObject *object; - int index; - - const CompiledFunction *operator->() const - { - return unit->functionAt(object->functionOffsetTable()[index]); - } - - void operator++() { ++index; } - bool operator==(const FunctionIterator &rhs) const { return index == rhs.index; } - bool operator!=(const FunctionIterator &rhs) const { return index != rhs.index; } - }; - + using FunctionIterator = CompiledData::CompilationUnit::FunctionIterator; FunctionIterator objectFunctionsBegin(const CompiledObject *object) const { - return FunctionIterator(unitData(), object, 0); + return m_compilationUnit->objectFunctionsBegin(object); } FunctionIterator objectFunctionsEnd(const CompiledObject *object) const { - return FunctionIterator(unitData(), object, object->nFunctions); + return m_compilationUnit->objectFunctionsEnd(object); } + Heap::Module *instantiate(); const Value *resolveExport(QV4::String *exportName) { |