summaryrefslogtreecommitdiffstats
path: root/src/uscxml/interpreter
diff options
context:
space:
mode:
authorStefan Radomski <sradomski@mintwerk.de>2015-12-04 08:00:18 (GMT)
committerStefan Radomski <sradomski@mintwerk.de>2015-12-04 08:00:18 (GMT)
commitb8ba0e7c31f397a66f9d509ff20a85b33619475a (patch)
tree9a5adb4f891cdc29eb80f597510e0cef8ee0a47f /src/uscxml/interpreter
parent57ba362eae6e8209cf560555fd4cc4bb76dbe2a1 (diff)
downloaduscxml-b8ba0e7c31f397a66f9d509ff20a85b33619475a.zip
uscxml-b8ba0e7c31f397a66f9d509ff20a85b33619475a.tar.gz
uscxml-b8ba0e7c31f397a66f9d509ff20a85b33619475a.tar.bz2
All changes up to my dissertation
Diffstat (limited to 'src/uscxml/interpreter')
-rw-r--r--src/uscxml/interpreter/InterpreterRC.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/uscxml/interpreter/InterpreterRC.cpp b/src/uscxml/interpreter/InterpreterRC.cpp
index b933993..879c771 100644
--- a/src/uscxml/interpreter/InterpreterRC.cpp
+++ b/src/uscxml/interpreter/InterpreterRC.cpp
@@ -209,15 +209,22 @@ Arabica::XPath::NodeSet<std::string> InterpreterRC::computeExitSet(const Arabica
}
Arabica::XPath::NodeSet<std::string> InterpreterRC::computeExitSet(const Arabica::DOM::Node<std::string>& transition) {
- if (_exitSet.find(transition) != _exitSet.end()) // speed up removeConflicting
- return _exitSet[transition];
+// if (_exitSet.find(transition) != _exitSet.end()) // speed up removeConflicting
+// return _exitSet[transition];
Arabica::XPath::NodeSet<std::string> transitions;
transitions.push_back(transition);
Arabica::XPath::NodeSet<std::string> exitSet = computeExitSet(transitions);
- _exitSet[transition] = exitSet;
+ //_exitSet[transition] = exitSet;
+#if 0
+ std::cerr << "Exit set for transition '" << transition << "': " << std::endl;
+ for (int i = 0; i < exitSet.size(); i++) {
+ std::cerr << ATTR_CAST(exitSet[i], "id") << std::endl << "----" << std::endl;
+ }
+ std::cerr << std::endl;
+#endif
return exitSet;
}
@@ -303,11 +310,11 @@ void InterpreterRC::enterStates(const Arabica::XPath::NodeSet<std::string>& enab
// only process first donedata element
doneData = Element<std::string>(doneDatas[0]);
}
- internalDoneSend(parent, doneData);
if (parentIsScxmlState(s)) {
_topLevelFinalReached = true;
} else {
+ internalDoneSend(parent, doneData);
Element<std::string> grandParent = (Element<std::string>)parent.getParentNode();
// internalDoneSend(parent, Arabica::DOM::Element<std::string>());