summaryrefslogtreecommitdiffstats
path: root/src/uscxml/transform/ChartToC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/transform/ChartToC.cpp')
-rwxr-xr-xsrc/uscxml/transform/ChartToC.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/uscxml/transform/ChartToC.cpp b/src/uscxml/transform/ChartToC.cpp
index 710260f..2216eed 100755
--- a/src/uscxml/transform/ChartToC.cpp
+++ b/src/uscxml/transform/ChartToC.cpp
@@ -2698,7 +2698,7 @@ void ChartToC::writeFSM(std::ostream& stream) {
stream << " /* handle final states */" << std::endl;
stream << " if unlikely(USCXML_STATE_MASK(USCXML_GET_STATE(i).type) == USCXML_STATE_FINAL) {" << std::endl;
- stream << " if unlikely(USCXML_GET_STATE(i).ancestors[0] == 0x01) {" << std::endl;
+ stream << " if unlikely((USCXML_GET_STATE(i).ancestors[0] == 0x01) && (USCXML_GET_STATE(i).parent == 0)) {" << std::endl;
stream << " ctx->flags |= USCXML_CTX_TOP_LEVEL_FINAL;" << std::endl;
stream << " } else {" << std::endl;
stream << " /* raise done event */" << std::endl;