aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2019-05-06 13:36:52 +0200
committerUlf Hermann <ulf.hermann@qt.io>2019-05-07 15:45:44 +0000
commit9de487fbd33531c65cffd5cfc27f34c4bcff4573 (patch)
tree4b0a88b82763f3200bb9dc73d4e9e5c4b93ee69b /src/qml
parent6376014ab61c45d6570ec226fc4eee6906dd32f9 (diff)
Move dynamicStrings into the bootstrapped part of QV4::CompiledData
We don't really need the dynamic strings at compile time, but having them defined simplifies some code. Change-Id: Ibcfaae7834f8aa63918da6787d222fe71657c4ee Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml')
-rw-r--r--src/qml/compiler/qqmlirbuilder.cpp2
-rw-r--r--src/qml/compiler/qv4compileddata_p.h20
2 files changed, 9 insertions, 13 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp
index 28e7daecd5..9ac1a8b5ac 100644
--- a/src/qml/compiler/qqmlirbuilder.cpp
+++ b/src/qml/compiler/qqmlirbuilder.cpp
@@ -1570,9 +1570,7 @@ void QmlUnitGenerator::generate(Document &output, const QV4::CompiledData::Depen
// We may already have unit data if we're loading an ahead-of-time generated cache file.
if (compilationUnit->data) {
jsUnit = compilationUnit->data;
-#ifndef V4_BOOTSTRAP
output.javaScriptCompilationUnit->dynamicStrings = output.jsGenerator.stringTable.allStrings();
-#endif
} else {
QV4::CompiledData::Unit *createdUnit;
jsUnit = createdUnit = output.jsGenerator.generateUnit();
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h
index dd7ba471c3..f604cc0d46 100644
--- a/src/qml/compiler/qv4compileddata_p.h
+++ b/src/qml/compiler/qv4compileddata_p.h
@@ -1089,6 +1089,7 @@ struct Q_QML_PRIVATE_EXPORT CompilationUnit final : public CompilationUnitBase
{
const Unit *data = nullptr;
const QmlUnit *qmlData = nullptr;
+ QStringList dynamicStrings;
public:
CompilationUnit(const Unit *unitData = nullptr, const QString &fileName = QString(), const QString &finalUrlString = QString());
~CompilationUnit();
@@ -1114,6 +1115,13 @@ public:
void setUnitData(const Unit *unitData, const QmlUnit *qmlUnit = nullptr,
const QString &fileName = QString(), const QString &finalUrlString = QString());
+ QString stringAt(int index) const
+ {
+ if (uint(index) >= data->stringTableSize)
+ return dynamicStrings.at(index - data->stringTableSize);
+ return data->stringAtInternal(index);
+ }
+
#ifndef V4_BOOTSTRAP
QIntrusiveListNode nextCompilationUnit;
ExecutionEngine *engine = nullptr;
@@ -1176,7 +1184,6 @@ public:
bool isRegisteredWithEngine = false;
QScopedPointer<CompilationUnitMapper> backingFile;
- QStringList dynamicStrings;
// --- interface for QQmlPropertyCacheCreator
typedef Object CompiledObject;
@@ -1184,12 +1191,6 @@ public:
const Object *objectAt(int index) const { return qmlData->objectAt(index); }
int importCount() const { return qmlData->nImports; }
const Import *importAt(int index) const { return qmlData->importAt(index); }
- QString stringAt(int index) const
- {
- if (uint(index) >= data->stringTableSize)
- return dynamicStrings.at(index - data->stringTableSize);
- return data->stringAtInternal(index);
- }
Heap::Object *templateObjectAt(int index) const;
@@ -1230,10 +1231,7 @@ public:
protected:
quint32 totalStringCount() const
{ return data->stringTableSize; }
-
-#else // V4_BOOTSTRAP
- QString stringAt(int index) const { return data->stringAtInternal(index); }
-#endif // V4_BOOTSTRAP
+#endif
private:
void destroy();