From 9de487fbd33531c65cffd5cfc27f34c4bcff4573 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 6 May 2019 13:36:52 +0200 Subject: 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 --- src/qml/compiler/qqmlirbuilder.cpp | 2 -- src/qml/compiler/qv4compileddata_p.h | 20 +++++++++----------- 2 files changed, 9 insertions(+), 13 deletions(-) (limited to 'src/qml') 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 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(); -- cgit v1.2.3