diff options
Diffstat (limited to 'src/qml/compiler/qqmlirbuilder.cpp')
-rw-r--r-- | src/qml/compiler/qqmlirbuilder.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index d22116fc83..a96fafac9b 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -1523,7 +1523,7 @@ QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output) objectsSize += signalTableSize; } - const int totalSize = unitSize + importSize + objectOffsetTableSize + objectsSize; + const int totalSize = unitSize + importSize + objectOffsetTableSize + objectsSize + output.jsGenerator.stringTable.sizeOfTableAndData(); char *data = (char*)malloc(totalSize); memcpy(data, jsUnit, unitSize); if (jsUnit != compilationUnit->data) @@ -1539,6 +1539,8 @@ QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output) qmlUnit->offsetToObjects = unitSize + importSize; qmlUnit->nObjects = output.objects.count(); qmlUnit->indexOfRootObject = output.indexOfRootObject; + qmlUnit->offsetToStringTable = totalSize - output.jsGenerator.stringTable.sizeOfTableAndData(); + qmlUnit->stringTableSize = output.jsGenerator.stringTable.stringCount(); // write imports char *importPtr = data + qmlUnit->offsetToImports; @@ -1630,6 +1632,8 @@ QV4::CompiledData::Unit *QmlUnitGenerator::generate(Document &output) } } + output.jsGenerator.stringTable.serialize(qmlUnit); + return qmlUnit; } |