File tree Expand file tree Collapse file tree 3 files changed +20
-2
lines changed Expand file tree Collapse file tree 3 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -39,12 +39,22 @@ RCLCPP_ACTION_PUBLIC
3939std::string
4040to_string (const GoalUUID & goal_id);
4141
42- // Convert C++ GoalID to rcl_action_goal_info_t
42+ // / Convert C++ GoalID to rcl_action_goal_info_t
43+ /* *
44+ * \param[in] goal_id C++ GoalUUID reference to be converted.
45+ * \param[inout] info rcl_action_goal_info_t structure to be filled.
46+ * \throws std::runtime_error if info is null.
47+ */
4348RCLCPP_ACTION_PUBLIC
4449void
4550convert (const GoalUUID & goal_id, rcl_action_goal_info_t * info);
4651
47- // Convert rcl_action_goal_info_t to C++ GoalID
52+ // / Convert rcl_action_goal_info_t to C++ GoalID
53+ /* *
54+ * \param[in] info rcl_action_goal_info_t reference to be converted.
55+ * \param[inout] goal_id C++ GoalUUID structure to be filled.
56+ * \throws std::runtime_error if goal_id is null.
57+ */
4858RCLCPP_ACTION_PUBLIC
4959void
5060convert (const rcl_action_goal_info_t & info, GoalUUID * goal_id);
Original file line number Diff line number Diff line change @@ -41,6 +41,9 @@ to_string(const GoalUUID & goal_id)
4141void
4242convert (const GoalUUID & goal_id, rcl_action_goal_info_t * info)
4343{
44+ if (info == nullptr ) {
45+ throw std::invalid_argument (" info is nullptr" );
46+ }
4447 for (size_t i = 0 ; i < UUID_SIZE; ++i) {
4548 info->goal_id .uuid [i] = goal_id[i];
4649 }
@@ -49,6 +52,9 @@ convert(const GoalUUID & goal_id, rcl_action_goal_info_t * info)
4952void
5053convert (const rcl_action_goal_info_t & info, GoalUUID * goal_id)
5154{
55+ if (goal_id == nullptr ) {
56+ throw std::invalid_argument (" goal_id is nullptr" );
57+ }
5258 for (size_t i = 0 ; i < UUID_SIZE; ++i) {
5359 (*goal_id)[i] = info.goal_id .uuid [i];
5460 }
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ TEST(TestActionTypes, goal_uuid_to_rcl_action_goal_info) {
4141 for (uint8_t i = 0 ; i < UUID_SIZE; ++i) {
4242 goal_id[i] = i;
4343 }
44+ ASSERT_THROW (rclcpp_action::convert (goal_id, nullptr ), std::invalid_argument);
4445 rcl_action_goal_info_t goal_info = rcl_action_get_zero_initialized_goal_info ();
4546 rclcpp_action::convert (goal_id, &goal_info);
4647 for (uint8_t i = 0 ; i < UUID_SIZE; ++i) {
@@ -54,6 +55,7 @@ TEST(TestActionTypes, rcl_action_goal_info_to_goal_uuid) {
5455 goal_info.goal_id .uuid [i] = i;
5556 }
5657
58+ ASSERT_THROW (rclcpp_action::convert (goal_info, nullptr ), std::invalid_argument);
5759 rclcpp_action::GoalUUID goal_id;
5860 rclcpp_action::convert (goal_info, &goal_id);
5961 for (uint8_t i = 0 ; i < UUID_SIZE; ++i) {
You can’t perform that action at this time.
0 commit comments