aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4compileddata.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2018-07-26 09:49:36 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2018-07-31 17:08:31 +0000
commitc549d9c4e58ef8b6f9c8d954dc24072ce529f326 (patch)
tree025b81a2ab85b76ff7183703eeb9835db5a03e96 /src/qml/compiler/qv4compileddata.cpp
parenta05d1796b88e628655afdba6063a186d3a0803bf (diff)
Simplify loading of ahead-of-time created QML cache files
Consolidate the old "createUnitData" code that used to be a virtual function into the one call site and avoid a malloc that way. By the way of that, the string table gets a guard to prevent accidental registerString() calls at a later point. Change-Id: Ia3f8d3e874b7733822e6942e411c940ec60d95a5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compileddata.cpp')
-rw-r--r--src/qml/compiler/qv4compileddata.cpp25
1 files changed, 0 insertions, 25 deletions
diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp
index f9216b5c4a..af0cfedf5b 100644
--- a/src/qml/compiler/qv4compileddata.cpp
+++ b/src/qml/compiler/qv4compileddata.cpp
@@ -463,31 +463,6 @@ bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString)
#endif // QT_CONFIG(temporaryfile)
}
-Unit *CompilationUnit::createUnitData(QmlIR::Document *irDocument)
-{
- if (!irDocument->javaScriptCompilationUnit->data)
- return irDocument->jsGenerator.generateUnit(QV4::Compiler::JSUnitGenerator::GenerateWithoutStringTable);
-
- QQmlRefPointer<QV4::CompiledData::CompilationUnit> compilationUnit = irDocument->javaScriptCompilationUnit;
- QV4::CompiledData::Unit *jsUnit = const_cast<QV4::CompiledData::Unit*>(compilationUnit->data);
- // Discard the old QML tables as the caller will re-create them anyway.
- quint32 unitSizeWithoutQMLTables = jsUnit->offsetToImports;
- char *unitCopy = (char*)malloc(unitSizeWithoutQMLTables);
- memcpy(unitCopy, jsUnit, unitSizeWithoutQMLTables);
- jsUnit = reinterpret_cast<QV4::CompiledData::Unit*>(unitCopy);
- jsUnit->flags &= ~QV4::CompiledData::Unit::StaticData;
- jsUnit->unitSize = unitSizeWithoutQMLTables;
-
- QV4::Compiler::StringTableGenerator &stringTable = irDocument->jsGenerator.stringTable;
-
- if (jsUnit->sourceFileIndex == quint32(0) || stringTable.stringForIndex(jsUnit->sourceFileIndex) != irDocument->jsModule.fileName) {
- jsUnit->sourceFileIndex = stringTable.registerString(irDocument->jsModule.fileName);
- jsUnit->finalUrlIndex = stringTable.registerString(irDocument->jsModule.finalUrl);
- }
-
- return jsUnit;
-}
-
void CompilationUnit::setUnitData(const Unit *unitData)
{
data = unitData;