aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qqmlirbuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qqmlirbuilder.cpp')
-rw-r--r--src/qml/compiler/qqmlirbuilder.cpp6
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;
}