diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2016-07-14 11:06:34 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2016-07-14 21:50:28 +0000 |
commit | 3190478663b68c275bb967618e98f4d9fe03f302 (patch) | |
tree | 63c64b7d05389005b19a9d045d74d1f2d466d151 | |
parent | a385ea0813e8d8ea834e1d2403509777cd52d3e9 (diff) |
Remove unused fields in CompiledData::Function
The table for referencing the inner functions is not needed. This also allows
making the function offsets table a local variable.
Change-Id: I3f1a1d6ab8c4f417edeafdc174e5b41d2d2b611b
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/qml/compiler/qv4compileddata_p.h | 1 | ||||
-rw-r--r-- | src/qml/compiler/qv4compiler.cpp | 10 | ||||
-rw-r--r-- | src/qml/compiler/qv4compiler_p.h | 3 |
3 files changed, 3 insertions, 11 deletions
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 616ac6da0e..b6c0e6e704 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -215,7 +215,6 @@ struct Function LEUInt32 nLocals; LEUInt32 localsOffset; LEUInt32 nInnerFunctions; - LEUInt32 innerFunctionsOffset; Location location; // Qml Extensions Begin diff --git a/src/qml/compiler/qv4compiler.cpp b/src/qml/compiler/qv4compiler.cpp index 8499f9b9aa..80de3beeff 100644 --- a/src/qml/compiler/qv4compiler.cpp +++ b/src/qml/compiler/qv4compiler.cpp @@ -219,6 +219,7 @@ QV4::CompiledData::Unit *QV4::Compiler::JSUnitGenerator::generateUnit(GeneratorO int unitSize = QV4::CompiledData::Unit::calculateSize(irModule->functions.size(), regexps.size(), constants.size(), lookups.size(), jsClasses.count()); + QHash<IR::Function *, uint> functionOffsets; uint functionDataSize = 0; for (int i = 0; i < irModule->functions.size(); ++i) { QV4::IR::Function *f = irModule->functions.at(i); @@ -313,7 +314,7 @@ QV4::CompiledData::Unit *QV4::Compiler::JSUnitGenerator::generateUnit(GeneratorO return unit; } -int QV4::Compiler::JSUnitGenerator::writeFunction(char *f, QV4::IR::Function *irFunction) +int QV4::Compiler::JSUnitGenerator::writeFunction(char *f, QV4::IR::Function *irFunction) const { QV4::CompiledData::Function *function = (QV4::CompiledData::Function *)f; @@ -340,8 +341,6 @@ int QV4::Compiler::JSUnitGenerator::writeFunction(char *f, QV4::IR::Function *ir currentOffset += function->nLocals * sizeof(quint32); function->nInnerFunctions = irFunction->nestedFunctions.size(); - function->innerFunctionsOffset = currentOffset; - currentOffset += function->nInnerFunctions * sizeof(quint32); function->nDependingIdObjects = 0; function->nDependingContextProperties = 0; @@ -381,11 +380,6 @@ int QV4::Compiler::JSUnitGenerator::writeFunction(char *f, QV4::IR::Function *ir for (int i = 0; i < irFunction->locals.size(); ++i) locals[i] = getStringId(*irFunction->locals.at(i)); - // write inner functions - quint32 *innerFunctions = (quint32 *)(f + function->innerFunctionsOffset); - for (int i = 0; i < irFunction->nestedFunctions.size(); ++i) - innerFunctions[i] = functionOffsets.value(irFunction->nestedFunctions.at(i)); - // write QML dependencies quint32 *writtenDeps = (quint32 *)(f + function->dependingIdObjectsOffset); for (int id : irFunction->idObjectDependencies) { diff --git a/src/qml/compiler/qv4compiler_p.h b/src/qml/compiler/qv4compiler_p.h index df10e9919b..ef50945981 100644 --- a/src/qml/compiler/qv4compiler_p.h +++ b/src/qml/compiler/qv4compiler_p.h @@ -114,13 +114,12 @@ struct Q_QML_PRIVATE_EXPORT JSUnitGenerator { QV4::CompiledData::Unit *generateUnit(GeneratorOption option = GenerateWithStringTable); // Returns bytes written - int writeFunction(char *f, IR::Function *irFunction); + int writeFunction(char *f, IR::Function *irFunction) const; StringTableGenerator stringTable; private: IR::Module *irModule; - QHash<IR::Function *, uint> functionOffsets; QList<CompiledData::Lookup> lookups; QVector<CompiledData::RegExp> regexps; QVector<ReturnedValue> constants; |