diff --git a/rclcpp/include/rclcpp/publisher.hpp b/rclcpp/include/rclcpp/publisher.hpp index c6f16643c6..3e21f936b9 100644 --- a/rclcpp/include/rclcpp/publisher.hpp +++ b/rclcpp/include/rclcpp/publisher.hpp @@ -320,7 +320,7 @@ class Publisher : public PublisherBase { if (!intra_process_is_enabled_) { // In this case we're not using intra process. - auto ros_msg_ptr = std::make_unique(); + auto ros_msg_ptr = create_ros_message_unique_ptr(); rclcpp::TypeAdapter::convert_to_ros_message(*msg, *ros_msg_ptr); this->do_inter_process_publish(*ros_msg_ptr); return; @@ -330,7 +330,8 @@ class Publisher : public PublisherBase get_subscription_count() > get_intra_process_subscription_count(); if (inter_process_publish_needed) { - auto ros_msg_ptr = std::make_shared(); + auto ros_msg_ptr = std::allocate_shared< + ROSMessageType, ROSMessageTypeAllocator>(ros_message_type_allocator_); rclcpp::TypeAdapter::convert_to_ros_message(*msg, *ros_msg_ptr); this->do_intra_process_publish(std::move(msg)); this->do_inter_process_publish(*ros_msg_ptr); @@ -339,7 +340,8 @@ class Publisher : public PublisherBase } } else { if (buffer_) { - auto ros_msg_ptr = std::make_shared(); + auto ros_msg_ptr = std::allocate_shared< + ROSMessageType, ROSMessageTypeAllocator>(ros_message_type_allocator_); rclcpp::TypeAdapter::convert_to_ros_message(*msg, *ros_msg_ptr); buffer_->add_shared(ros_msg_ptr); } @@ -367,7 +369,7 @@ class Publisher : public PublisherBase { if (!intra_process_is_enabled_) { // Convert to the ROS message equivalent and publish it. - auto ros_msg_ptr = std::make_unique(); + auto ros_msg_ptr = create_ros_message_unique_ptr(); rclcpp::TypeAdapter::convert_to_ros_message(msg, *ros_msg_ptr); this->do_inter_process_publish(*ros_msg_ptr); return;