summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorStefan Radomski <sradomski@mintwerk.de>2016-01-20 23:27:47 (GMT)
committerStefan Radomski <sradomski@mintwerk.de>2016-01-20 23:27:47 (GMT)
commit762eb95910cd4dfad6a84f97332b7549b2fdbd69 (patch)
tree81cd2bef6106f28fbd6289c85e8a2d779a4fb1e0 /test
parent29586fff4c6ea5ded7e787e30fceafda84db23d1 (diff)
downloaduscxml-762eb95910cd4dfad6a84f97332b7549b2fdbd69.zip
uscxml-762eb95910cd4dfad6a84f97332b7549b2fdbd69.tar.gz
uscxml-762eb95910cd4dfad6a84f97332b7549b2fdbd69.tar.bz2
Reverted a erroneous bugfix
Diffstat (limited to 'test')
-rw-r--r--test/src/test-c-machine.machine.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/test/src/test-c-machine.machine.c b/test/src/test-c-machine.machine.c
index d42d577..09e7703 100644
--- a/test/src/test-c-machine.machine.c
+++ b/test/src/test-c-machine.machine.c
@@ -635,8 +635,8 @@ ESTABLISH_ENTRY_SET:
SET_BIT(j, trans_set);
break;
}
+ // Note: SCXML mandates every history to have a transition!
}
- // TODO: enter parents default completion here
} else {
bit_copy(history_targets, scxml_states[i].completion, 2);
bit_and(history_targets, ctx->history, 2);
@@ -649,8 +649,8 @@ ESTABLISH_ENTRY_SET:
(scxml_states[j].type & SCXML_STATE_HAS_HISTORY)) {
for (size_t k = j + 1; k < SCXML_NUMBER_STATES; k++) {
// add nested history to entry_set
- if ((scxml_states[k].type == SCXML_STATE_HISTORY_DEEP ||
- scxml_states[k].type == SCXML_STATE_HISTORY_SHALLOW) &&
+ if ((SCXML_STATE_MASK(scxml_states[k].type) == SCXML_STATE_HISTORY_DEEP ||
+ SCXML_STATE_MASK(scxml_states[k].type) == SCXML_STATE_HISTORY_SHALLOW) &&
IS_SET(k, scxml_states[j].children)) {
// a nested history state
SET_BIT(k, entry_set);
@@ -668,7 +668,7 @@ ESTABLISH_ENTRY_SET:
SET_BIT(j, trans_set);
CLEARBIT(i, entry_set);
bit_or(entry_set, scxml_transitions[j].target, 2);
- for (size_t k = 0; k < SCXML_NUMBER_STATES; k++) {
+ for (size_t k = i + 1; k < SCXML_NUMBER_STATES; k++) {
if (IS_SET(k, scxml_transitions[j].target)) {
bit_or(entry_set, scxml_states[k].ancestors, 2);
}
@@ -685,7 +685,7 @@ ESTABLISH_ENTRY_SET:
bit_or(entry_set, scxml_states[i].completion, 2);
if (!bit_has_and(scxml_states[i].completion, scxml_states[i].children, 2)) {
// deep completion
- for (size_t j = 0; j < SCXML_NUMBER_STATES; j++) {
+ for (size_t j = i + 1; j < SCXML_NUMBER_STATES; j++) {
if (IS_SET(j, scxml_states[i].completion)) {
bit_or(entry_set, scxml_states[j].ancestors, 2);
break; // completion of compound is single state