diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2019-07-05 10:04:08 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2019-07-08 14:43:00 +0200 |
commit | b4d4e077340e7a1c031be15415410c20adc74887 (patch) | |
tree | 54d234d205ecf46d2fb50d3516c91b3df1bec22d /src/qml/compiler/qqmlirbuilder_p.h | |
parent | 7811d69006d298dcbe2abff874b02dfa80d8bf80 (diff) |
Centralize property & signal parameter type handling at compilation time
Collect all that code in the Parameter class, which allows for future
re-use for function parameters and return types.
Change-Id: Ib9dfec9313dc3938634f9ce3a2e5a3a59a7135d9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/compiler/qqmlirbuilder_p.h')
-rw-r--r-- | src/qml/compiler/qqmlirbuilder_p.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/qml/compiler/qqmlirbuilder_p.h b/src/qml/compiler/qqmlirbuilder_p.h index cf47bea4db..2b8d7dfcce 100644 --- a/src/qml/compiler/qqmlirbuilder_p.h +++ b/src/qml/compiler/qqmlirbuilder_p.h @@ -216,22 +216,26 @@ struct Enum }; -struct SignalParameter : public QV4::CompiledData::Parameter +struct Parameter : public QV4::CompiledData::Parameter { - SignalParameter *next; + Parameter *next; + + bool init(QV4::Compiler::JSUnitGenerator *stringGenerator, const QString ¶meterName, const QString &typeName); + + static QV4::CompiledData::BuiltinType stringToBuiltinType(const QString &typeName); }; struct Signal { int nameIndex; QV4::CompiledData::Location location; - PoolList<SignalParameter> *parameters; + PoolList<Parameter> *parameters; QStringList parameterStringList(const QV4::Compiler::StringTableGenerator *stringPool) const; int parameterCount() const { return parameters->count; } - PoolList<SignalParameter>::Iterator parametersBegin() const { return parameters->begin(); } - PoolList<SignalParameter>::Iterator parametersEnd() const { return parameters->end(); } + PoolList<Parameter>::Iterator parametersBegin() const { return parameters->begin(); } + PoolList<Parameter>::Iterator parametersEnd() const { return parameters->end(); } Signal *next; }; |