aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4executablecompilationunit_p.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-01-10 08:42:08 +0100
committerUlf Hermann <ulf.hermann@qt.io>2024-01-18 21:37:50 +0100
commit07d99f8787f22bd9053d8f6280ac5118194148c6 (patch)
tree4a5ca1566b91a0ca23af9fa490a8fccde1371f2d /src/qml/jsruntime/qv4executablecompilationunit_p.h
parent24c7c153faaeec04a4793e13449efde34dd87ed5 (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.h46
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)
{