summaryrefslogtreecommitdiffstats
path: root/src/scxml/qscxmltabledata.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2016-09-21 16:33:33 +0200
committerUlf Hermann <ulf.hermann@qt.io>2016-10-27 08:28:35 +0000
commit44798eeb43a9a51647fe57a1656072454a4487ee (patch)
treeab43549f9af55ed3b3cb1107bb17c9e35cd189f8 /src/scxml/qscxmltabledata.cpp
parent2f44d6d3c03a5484ffa542462c7789f593840774 (diff)
Further clean up qscxmlinvokableservice.hv5.8.0-beta1
We can group the various parameters passed around between the factories into a struct and we can move some methods into the private interface. Change-Id: I579ced7d501bdb617d4aefd47ced49746c9a5b94 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/scxml/qscxmltabledata.cpp')
-rw-r--r--src/scxml/qscxmltabledata.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/scxml/qscxmltabledata.cpp b/src/scxml/qscxmltabledata.cpp
index 3b9cabd..2457840 100644
--- a/src/scxml/qscxmltabledata.cpp
+++ b/src/scxml/qscxmltabledata.cpp
@@ -273,11 +273,16 @@ protected: // visitor
auto srcexpr = createEvaluatorString(QStringLiteral("invoke"),
QStringLiteral("srcexpr"),
invoke->srcexpr);
- const int factoryId = createFactoryId(
- ctxt, srcexpr, addString(invoke->id),
- addString(state->id + QStringLiteral(".session-")),
- addString(invoke->idLocation), namelist, invoke->autoforward, params,
- finalize, invoke->content);
+ QScxmlExecutableContent::InvokeInfo invokeInfo;
+ invokeInfo.id = addString(invoke->id);
+ invokeInfo.prefix = addString(state->id + QStringLiteral(".session-"));
+ invokeInfo.location = addString(invoke->idLocation);
+ invokeInfo.context = ctxt;
+ invokeInfo.expr = srcexpr;
+ invokeInfo.finalize = finalize;
+ invokeInfo.autoforward = invoke->autoforward;
+ const int factoryId = createFactoryId(invokeInfo, namelist, params,
+ invoke->content);
Q_ASSERT(factoryId >= 0);
factoryIds.append(factoryId);
m_stateTable.maxServiceId = std::max(m_stateTable.maxServiceId, factoryId);