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 | |
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')
-rw-r--r-- | src/uscxml/interpreter/BasicContentExecutor.cpp | 6 | ||||
-rw-r--r-- | src/uscxml/interpreter/FastMicroStep.cpp | 19 | ||||
-rw-r--r-- | src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp | 2 |
3 files changed, 18 insertions, 9 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(); } } diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp index f80d427..885f70d 100644 --- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp +++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp @@ -146,7 +146,7 @@ void USCXMLInvoker::invoke(const std::string& source, const Event& invokeEvent) // std::cout << *document << std::endl; // TODO: where do we get the namespace from? - _invokedInterpreter = Interpreter::fromDocument(document, _interpreter->getBaseURL()); + _invokedInterpreter = Interpreter::fromDocument(document, _interpreter->getBaseURL(), false); } else { _isActive = false; |