diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2023-12-20 15:47:43 +0100 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2024-01-08 22:30:11 +0100 |
| commit | 933f80f345cb04df6ecafe9c76f262553a5a198c (patch) | |
| tree | 336ab12536d67c5e6f38b7428cc9d940a75eca0d /src/qml/jsruntime/qv4executablecompilationunit.cpp | |
| parent | 796dd2ab8c7b0e85f2469df9b79f65ca62719c8b (diff) | |
QtQml: Move engine-specific data out of base compilation unit
We want to re-use the base compilation unit for different engines. To do
that, we cannot have data in there that belongs to a specific engine.
Pick-to: 6.7
Task-number: QTBUG-120189
Change-Id: I8e43e7ec6c1cd33249dc4ed15fec16babc6d06fb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4executablecompilationunit.cpp')
| -rw-r--r-- | src/qml/jsruntime/qv4executablecompilationunit.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4executablecompilationunit.cpp b/src/qml/jsruntime/qv4executablecompilationunit.cpp index c0c5f341e5..2ab38b70d9 100644 --- a/src/qml/jsruntime/qv4executablecompilationunit.cpp +++ b/src/qml/jsruntime/qv4executablecompilationunit.cpp @@ -57,10 +57,13 @@ ExecutableCompilationUnit::ExecutableCompilationUnit() = default; ExecutableCompilationUnit::ExecutableCompilationUnit( CompiledData::CompilationUnit &&compilationUnit) : CompiledData::CompilationUnit(std::move(compilationUnit)) -{} +{ + CompilationUnitRuntimeData::constants = CompiledData::CompilationUnit::constants; +} ExecutableCompilationUnit::~ExecutableCompilationUnit() { + delete [] imports; unlink(); } @@ -219,7 +222,7 @@ QV4::Function *ExecutableCompilationUnit::linkToEngine(ExecutionEngine *engine) static const bool showCode = qEnvironmentVariableIsSet("QV4_SHOW_BYTECODE"); if (showCode) { qDebug() << "=== Constant table"; - dumpConstantTable(constants, data->constantTableSize); + dumpConstantTable(CompiledData::CompilationUnit::constants, data->constantTableSize); qDebug() << "=== String table"; for (uint i = 0, end = totalStringCount(); i < end; ++i) qDebug() << " " << i << ":" << runtimeStrings[i]->toQString(); @@ -887,6 +890,7 @@ bool ExecutableCompilationUnit::loadFromDisk(const QUrl &url, const QDateTime &s dataPtrRevert.dismiss(); free(const_cast<CompiledData::Unit*>(oldDataPtr)); backingFile = std::move(cacheFile); + CompilationUnitRuntimeData::constants = CompiledData::CompilationUnit::constants; return true; } |
