From e33052760d13e8e4ac97fb921e5132e7502d1680 Mon Sep 17 00:00:00 2001 From: perry-reframe Date: Thu, 12 Jun 2025 17:18:38 -0400 Subject: [PATCH] Change registry insert to insert_or_assign to allow old weak_ptrs to be replaced --- behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp | 2 +- behaviortree_ros2/include/behaviortree_ros2/bt_service_node.hpp | 2 +- .../include/behaviortree_ros2/bt_topic_sub_node.hpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp b/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp index 05c664d..676089e 100644 --- a/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp +++ b/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp @@ -309,7 +309,7 @@ inline bool RosActionNode::createClient(const std::string& action_name) if(it == registry.end() || it->second.expired()) { client_instance_ = std::make_shared(node, action_name); - registry.insert({ action_client_key_, client_instance_ }); + registry.insert_or_assign( action_client_key_, client_instance_ ); } else { diff --git a/behaviortree_ros2/include/behaviortree_ros2/bt_service_node.hpp b/behaviortree_ros2/include/behaviortree_ros2/bt_service_node.hpp index 77958cd..3a4908e 100644 --- a/behaviortree_ros2/include/behaviortree_ros2/bt_service_node.hpp +++ b/behaviortree_ros2/include/behaviortree_ros2/bt_service_node.hpp @@ -275,7 +275,7 @@ inline bool RosServiceNode::createClient(const std::string& service_name) if(it == registry.end() || it->second.expired()) { srv_instance_ = std::make_shared(node, service_name); - registry.insert({ client_key, srv_instance_ }); + registry.insert_or_assign( client_key, srv_instance_ ); RCLCPP_INFO(logger(), "Node [%s] created service client [%s]", name().c_str(), service_name.c_str()); diff --git a/behaviortree_ros2/include/behaviortree_ros2/bt_topic_sub_node.hpp b/behaviortree_ros2/include/behaviortree_ros2/bt_topic_sub_node.hpp index 211f41c..a1fee2e 100644 --- a/behaviortree_ros2/include/behaviortree_ros2/bt_topic_sub_node.hpp +++ b/behaviortree_ros2/include/behaviortree_ros2/bt_topic_sub_node.hpp @@ -262,7 +262,7 @@ inline bool RosTopicSubNode::createSubscriber(const std::string& topic_name) if(it == registry.end() || it->second.expired()) { sub_instance_ = std::make_shared(node, topic_name); - registry.insert({ subscriber_key_, sub_instance_ }); + registry.insert_or_assign( subscriber_key_, sub_instance_ ); RCLCPP_INFO(logger(), "Node [%s] created Subscriber to topic [%s]", name().c_str(), topic_name.c_str());