diff --git a/src/behavior_tree.cpp b/src/behavior_tree.cpp index b6da165b7..4f25bc500 100644 --- a/src/behavior_tree.cpp +++ b/src/behavior_tree.cpp @@ -56,7 +56,9 @@ void applyRecursiveVisitor(TreeNode* node, const std::function& } else if (auto decorator = dynamic_cast(node)) { - applyRecursiveVisitor(decorator->child(), visitor); + if( decorator->child() ){ + applyRecursiveVisitor(decorator->child(), visitor); + } } } diff --git a/src/decorator_node.cpp b/src/decorator_node.cpp index 6c9967625..d79da5d6d 100644 --- a/src/decorator_node.cpp +++ b/src/decorator_node.cpp @@ -48,6 +48,9 @@ TreeNode* DecoratorNode::child() void DecoratorNode::haltChild() { + if( !child_node_ ){ + return; + } if (child_node_->status() == NodeStatus::RUNNING) { child_node_->halt();