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.cpp | |
| 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.cpp')
| -rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 6b01e83bdf..0314b6d997 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -860,8 +860,8 @@ ExecutionEngine::~ExecutionEngine() delete memoryManager; // Take a temporary reference to the CU so that it doesn't disappear during unlinking. - while (!compilationUnits.isEmpty()) { - QQmlRefPointer<ExecutableCompilationUnit> cu(*compilationUnits.begin()); + while (!m_compilationUnits.isEmpty()) { + QQmlRefPointer<ExecutableCompilationUnit> cu(*m_compilationUnits.begin()); Q_ASSERT(cu->engine == this); cu->clear(); cu->engine = nullptr; @@ -1330,7 +1330,7 @@ void ExecutionEngine::markObjects(MarkStack *markStack) identifierTable->markObjects(markStack); - for (auto compilationUnit: compilationUnits) + for (const auto &compilationUnit : m_compilationUnits) compilationUnit->markObjects(markStack); } @@ -2079,11 +2079,10 @@ QQmlRefPointer<ExecutableCompilationUnit> ExecutionEngine::compileModule(const Q : QQmlMetaType::RequireFullyTyped, &cacheError) : nullptr) { - return ExecutableCompilationUnit::create( + return executableCompilationUnit( QQml::makeRefPointer<QV4::CompiledData::CompilationUnit>( cachedUnit->qmlData, cachedUnit->aotCompiledFunctions, url.fileName(), - url.toString()), - this); + url.toString())); } QFile f(QQmlFile::urlToLocalFileOrQrc(url)); @@ -2117,6 +2116,12 @@ QQmlRefPointer<ExecutableCompilationUnit> ExecutionEngine::compileModule( } } + return executableCompilationUnit(std::move(unit)); +} + +QQmlRefPointer<ExecutableCompilationUnit> ExecutionEngine::executableCompilationUnit( + QQmlRefPointer<CompiledData::CompilationUnit> &&unit) +{ return ExecutableCompilationUnit::create(std::move(unit), this); } |
