aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4engine_p.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-01-05 15:25:39 +0100
committerUlf Hermann <ulf.hermann@qt.io>2024-01-11 00:42:17 +0100
commit809292e9b801fb5eb47dd7049bddc0fd776ab872 (patch)
tree01a772029dc20293dd278476f7347b0d064df36e /src/qml/jsruntime/qv4engine_p.h
parent7a9a778604a03473b6c4ef8a481ba3cc06d48265 (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.h10
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) \