diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-05-06 13:36:52 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-05-07 15:45:44 +0000 |
commit | 9de487fbd33531c65cffd5cfc27f34c4bcff4573 (patch) | |
tree | 4b0a88b82763f3200bb9dc73d4e9e5c4b93ee69b | |
parent | 6376014ab61c45d6570ec226fc4eee6906dd32f9 (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>
-rw-r--r-- | src/qml/compiler/qqmlirbuilder.cpp | 2 | ||||
-rw-r--r-- | src/qml/compiler/qv4compileddata_p.h | 20 |
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(); |