diff --git a/rclcpp/include/rclcpp/service.hpp b/rclcpp/include/rclcpp/service.hpp index 621e900..7279dc3 100644 --- a/rclcpp/include/rclcpp/service.hpp +++ b/rclcpp/include/rclcpp/service.hpp @@ -172,6 +172,7 @@ public: (std::cerr << ss.str()).flush(); rcl_reset_error(); } + delete service_handle_; } } diff --git a/rclcpp/src/rclcpp/node_interfaces/node_base.cpp b/rclcpp/src/rclcpp/node_interfaces/node_base.cpp index 3c9c8ed..f5cbed4 100644 --- a/rclcpp/src/rclcpp/node_interfaces/node_base.cpp +++ b/rclcpp/src/rclcpp/node_interfaces/node_base.cpp @@ -92,6 +92,8 @@ NodeBase::NodeBase( // Finalize the interrupt guard condition. finalize_notify_guard_condition(); + delete rcl_node; + if (ret == RCL_RET_NODE_INVALID_NAME) { rcl_reset_error(); // discard rcl_node_init error int validation_result;