diff options
author | Stefan Radomski <github@mintwerk.de> | 2016-05-20 22:39:07 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2016-05-20 22:39:07 (GMT) |
commit | 045db3f61f776f8472a6ce7bd2ddbeda77cae872 (patch) | |
tree | e8e93fbdbf2e9ed37af321eb53b7d40399349594 /src/uscxml/interpreter/FastMicroStep.cpp | |
parent | b3f69eb2b306318be73327bf55a7af79e3e2922f (diff) | |
download | uscxml-045db3f61f776f8472a6ce7bd2ddbeda77cae872.zip uscxml-045db3f61f776f8472a6ce7bd2ddbeda77cae872.tar.gz uscxml-045db3f61f776f8472a6ce7bd2ddbeda77cae872.tar.bz2 |
Passing all Lua tests again - might have broken external builds
Diffstat (limited to 'src/uscxml/interpreter/FastMicroStep.cpp')
-rw-r--r-- | src/uscxml/interpreter/FastMicroStep.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/uscxml/interpreter/FastMicroStep.cpp b/src/uscxml/interpreter/FastMicroStep.cpp index fd9f1a9..bf58f7b 100644 --- a/src/uscxml/interpreter/FastMicroStep.cpp +++ b/src/uscxml/interpreter/FastMicroStep.cpp @@ -289,19 +289,24 @@ void FastMicroStep::init(XERCESC_NS::DOMElement* scxml) { DOMNode* parent = _states[i]->element->getParentNode(); if (parent && parent->getNodeType() == DOMNode::ELEMENT_NODE) { State* uscxmlState = (State*)parent->getUserData(X("uscxmlState")); - // parent - _states[i]->parent = uscxmlState->documentOrder; + // parent maybe a content element + if (uscxmlState != NULL) { + _states[i]->parent = uscxmlState->documentOrder; + } } while(parent && parent->getNodeType() == DOMNode::ELEMENT_NODE) { State* uscxmlState = (State*)parent->getUserData(X("uscxmlState")); - // ancestors - BIT_SET_AT(uscxmlState->documentOrder, _states[i]->ancestors); + if (uscxmlState == NULL) + break; - // children - BIT_SET_AT(i, uscxmlState->children); - parent = parent->getParentNode(); + // ancestors + BIT_SET_AT(uscxmlState->documentOrder, _states[i]->ancestors); + + // children + BIT_SET_AT(i, uscxmlState->children); + parent = parent->getParentNode(); } } |