diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-05 15:25:39 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-11 00:42:17 +0100 |
commit | 809292e9b801fb5eb47dd7049bddc0fd776ab872 (patch) | |
tree | 01a772029dc20293dd278476f7347b0d064df36e /src/qml/jsruntime/qv4engine_p.h | |
parent | 7a9a778604a03473b6c4ef8a481ba3cc06d48265 (diff) |
QtQml: Move creation of ExecutableCompilationUnit into engine
This is in preparation for letting the engine cache the executable CUs.
Change-Id: Ideac10d8dda0784b41304b58f9b9fbd106173ea6
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4engine_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4engine_p.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index f0d9ecf143..fc4940d006 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -496,7 +496,10 @@ public: Symbol *symbol_unscopables() const { return reinterpret_cast<Symbol *>(jsSymbols + Symbol_unscopables); } Symbol *symbol_revokableProxy() const { return reinterpret_cast<Symbol *>(jsSymbols + Symbol_revokableProxy); } - QIntrusiveList<ExecutableCompilationUnit, &ExecutableCompilationUnit::nextCompilationUnit> compilationUnits; + using CompilationUnitList = QIntrusiveList< + ExecutableCompilationUnit, &ExecutableCompilationUnit::nextCompilationUnit>; + CompilationUnitList &compilationUnits() { return m_compilationUnits; } + const CompilationUnitList &compilationUnits() const { return m_compilationUnits; } quint32 m_engineId; @@ -755,6 +758,9 @@ public: QQmlRefPointer<ExecutableCompilationUnit> compileModule( const QUrl &url, const QString &sourceCode, const QDateTime &sourceTimeStamp); + QQmlRefPointer<ExecutableCompilationUnit> executableCompilationUnit( + QQmlRefPointer<QV4::CompiledData::CompilationUnit> &&unit); + void injectCompiledModule(const QQmlRefPointer<ExecutableCompilationUnit> &moduleUnit); QV4::Value *registerNativeModule(const QUrl &url, const QV4::Value &module); @@ -878,6 +884,8 @@ private: // Instead, we allocate a raw pointer using the same manual memory management // technique in QV4::PersistentValue. QHash<QUrl, Value *> nativeModules; + + CompilationUnitList m_compilationUnits; }; #define CHECK_STACK_LIMITS(v4) \ |