summaryrefslogtreecommitdiffstats
path: root/src/scxml/qscxmltabledata.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2016-10-06 11:36:19 +0200
committerUlf Hermann <ulf.hermann@qt.io>2016-10-14 10:52:53 +0000
commit7fe44d5d3b0ce86e53d00b65f0905c83b2e17586 (patch)
treee2e26eaa3b1dadfab51eab70cd7ca929bc3a03d8 /src/scxml/qscxmltabledata.cpp
parentd21bf21aed0c346b5666725ba52c4424c360c028 (diff)
Simplify qscxmlexecutablecontent.h
The only things we actually have to export are a few structs and typedefs. As we have to keep this binary compatible we should strive to make it as simple as possible. Change-Id: I54d365530800c86ecc3d859d6daea94e05b893a0 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/scxml/qscxmltabledata.cpp')
-rw-r--r--src/scxml/qscxmltabledata.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/scxml/qscxmltabledata.cpp b/src/scxml/qscxmltabledata.cpp
index ced6c16..c2e9dc6 100644
--- a/src/scxml/qscxmltabledata.cpp
+++ b/src/scxml/qscxmltabledata.cpp
@@ -254,9 +254,9 @@ protected: // visitor
QVector<QScxmlExecutableContent::StringId> namelist;
for (const QString &name : qAsConst(invoke->namelist))
namelist += addString(name);
- QVector<QScxmlExecutableContent::Param> params;
+ QVector<QScxmlExecutableContent::ParameterInfo> params;
for (DocumentModel::Param *param : qAsConst(invoke->params)) {
- QScxmlExecutableContent::Param p;
+ QScxmlExecutableContent::ParameterInfo p;
p.name = addString(param->name);
p.expr = createEvaluatorVariant(QStringLiteral("param"), QStringLiteral("expr"),
param->expr);
@@ -480,12 +480,14 @@ protected: // visitor
}
protected:
+ static int paramSize() { return sizeof(ParameterInfo) / sizeof(qint32); }
+
ContainerId generate(const DocumentModel::DoneData *node)
{
auto id = m_instructions.newContainerId();
DoneData *doneData;
if (node) {
- doneData = m_instructions.add<DoneData>(node->params.size() * Param::calculateSize());
+ doneData = m_instructions.add<DoneData>(node->params.size() * paramSize());
doneData->contents = addString(node->contents);
doneData->expr = createEvaluatorString(QStringLiteral("donedata"),
QStringLiteral("expr"),
@@ -529,10 +531,10 @@ protected:
return id;
}
- void generate(Array<Param> *out, const QVector<DocumentModel::Param *> &in)
+ void generate(Array<ParameterInfo> *out, const QVector<DocumentModel::Param *> &in)
{
out->count = in.size();
- Param *it = out->data();
+ ParameterInfo *it = out->data();
for (DocumentModel::Param *f : in) {
it->name = addString(f->name);
it->expr = createEvaluatorVariant(QStringLiteral("param"), QStringLiteral("expr"),
@@ -870,7 +872,7 @@ private:
Table<QVector<EvaluatorInfo>, EvaluatorInfo, EvaluatorId> m_evaluators;
Table<QVector<AssignmentInfo>, AssignmentInfo, EvaluatorId> m_assignments;
Table<QVector<ForeachInfo>, ForeachInfo, EvaluatorId> m_foreaches;
- StringIds &m_dataIds;
+ QVector<StringId> &m_dataIds;
bool m_isCppDataModel = false;
StateTable m_stateTable;