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 | |
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')
-rw-r--r-- | src/uscxml/interpreter/BasicContentExecutor.cpp | 6 | ||||
-rw-r--r-- | src/uscxml/interpreter/FastMicroStep.cpp | 19 |
2 files changed, 17 insertions, 8 deletions
diff --git a/src/uscxml/interpreter/BasicContentExecutor.cpp b/src/uscxml/interpreter/BasicContentExecutor.cpp index 2010ae2..c1eb8f6 100644 --- a/src/uscxml/interpreter/BasicContentExecutor.cpp +++ b/src/uscxml/interpreter/BasicContentExecutor.cpp @@ -444,6 +444,9 @@ void BasicContentExecutor::invoke(XERCESC_NS::DOMElement* element) { // content std::list<DOMElement*> contents = DOMUtils::filterChildElements(XML_PREFIX(element).str() + "content", element); if (contents.size() > 0) { +#if 1 + invokeEvent.data.node = contents.front(); +#else Data d = elementAsData(contents.front()); if (d.type == Data::INTERPRETED && d.atom.size() > 0) { // immediately evaluate! @@ -451,9 +454,10 @@ void BasicContentExecutor::invoke(XERCESC_NS::DOMElement* element) { } else { invokeEvent.data = d; } +#endif } } catch (Event e) { - ERROR_EXECUTION_THROW2("Syntax error in send element content", element); + ERROR_EXECUTION_THROW2("Syntax error in invoke element content", element); } // autoforward 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(); } } |