File tree 3 files changed +20
-2
lines changed 3 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -39,12 +39,22 @@ RCLCPP_ACTION_PUBLIC
39
39
std::string
40
40
to_string (const GoalUUID & goal_id);
41
41
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
+ */
43
48
RCLCPP_ACTION_PUBLIC
44
49
void
45
50
convert (const GoalUUID & goal_id, rcl_action_goal_info_t * info);
46
51
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
+ */
48
58
RCLCPP_ACTION_PUBLIC
49
59
void
50
60
convert (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)
41
41
void
42
42
convert (const GoalUUID & goal_id, rcl_action_goal_info_t * info)
43
43
{
44
+ if (info == nullptr ) {
45
+ throw std::invalid_argument (" info is nullptr" );
46
+ }
44
47
for (size_t i = 0 ; i < UUID_SIZE; ++i) {
45
48
info->goal_id .uuid [i] = goal_id[i];
46
49
}
@@ -49,6 +52,9 @@ convert(const GoalUUID & goal_id, rcl_action_goal_info_t * info)
49
52
void
50
53
convert (const rcl_action_goal_info_t & info, GoalUUID * goal_id)
51
54
{
55
+ if (goal_id == nullptr ) {
56
+ throw std::invalid_argument (" goal_id is nullptr" );
57
+ }
52
58
for (size_t i = 0 ; i < UUID_SIZE; ++i) {
53
59
(*goal_id)[i] = info.goal_id .uuid [i];
54
60
}
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ TEST(TestActionTypes, goal_uuid_to_rcl_action_goal_info) {
41
41
for (uint8_t i = 0 ; i < UUID_SIZE; ++i) {
42
42
goal_id[i] = i;
43
43
}
44
+ ASSERT_THROW (rclcpp_action::convert (goal_id, nullptr ), std::invalid_argument);
44
45
rcl_action_goal_info_t goal_info = rcl_action_get_zero_initialized_goal_info ();
45
46
rclcpp_action::convert (goal_id, &goal_info);
46
47
for (uint8_t i = 0 ; i < UUID_SIZE; ++i) {
@@ -54,6 +55,7 @@ TEST(TestActionTypes, rcl_action_goal_info_to_goal_uuid) {
54
55
goal_info.goal_id .uuid [i] = i;
55
56
}
56
57
58
+ ASSERT_THROW (rclcpp_action::convert (goal_info, nullptr ), std::invalid_argument);
57
59
rclcpp_action::GoalUUID goal_id;
58
60
rclcpp_action::convert (goal_info, &goal_id);
59
61
for (uint8_t i = 0 ; i < UUID_SIZE; ++i) {
You can’t perform that action at this time.
0 commit comments