@@ -27,8 +27,6 @@ pub fn extract_non_ros_args(
27
27
) -> Result < Vec < String > , RclrsError > {
28
28
// SAFETY: Getting a zero-initialized value is always safe.
29
29
let mut rcl_arguments = unsafe { rcl_get_zero_initialized_arguments ( ) } ;
30
- // SAFETY: No preconditions for this function
31
- let allocator = unsafe { rcutils_get_default_allocator ( ) } ;
32
30
33
31
let ( args, cstring_args) : ( Vec < String > , Vec < Result < CString , RclrsError > > ) = args
34
32
. into_iter ( )
@@ -52,17 +50,12 @@ pub fn extract_non_ros_args(
52
50
} else {
53
51
c_args. as_ptr ( )
54
52
} ;
55
- // SAFETY: No preconditions for this function
56
- let ret = unsafe {
57
- rcl_parse_arguments ( c_args. len ( ) as i32 , argv, allocator, & mut rcl_arguments) . ok ( )
58
- } ;
59
53
60
- if let Err ( err) = ret {
61
- // SAFETY: No preconditions for this function
62
- unsafe {
63
- rcl_arguments_fini ( & mut rcl_arguments) . ok ( ) ?;
64
- }
65
- return Err ( err) ;
54
+ unsafe {
55
+ // SAFETY: Getting a default value is always safe.
56
+ let allocator = rcutils_get_default_allocator ( ) ;
57
+ // SAFETY: No preconditions for this function.
58
+ rcl_parse_arguments ( c_args. len ( ) as i32 , argv, allocator, & mut rcl_arguments) . ok ( ) ?;
66
59
}
67
60
68
61
let ret = get_rcl_arguments (
@@ -72,7 +65,7 @@ pub fn extract_non_ros_args(
72
65
& args,
73
66
) ;
74
67
unsafe {
75
- // SAFETY: No preconditions for this function
68
+ // SAFETY: No preconditions for this function.
76
69
rcl_arguments_fini ( & mut rcl_arguments) . ok ( ) ?;
77
70
}
78
71
ret
@@ -85,17 +78,15 @@ mod tests {
85
78
#[ test]
86
79
fn test_non_ros_arguments ( ) -> Result < ( ) , String > {
87
80
// ROS args are expected to be between '--ros-args' and '--'. Everything beside that is 'non-ROS'.
88
- let input_args: Vec < String > = vec ! [
81
+ let input_args: [ String ; 6 ] = [
89
82
"non-ros1" ,
90
83
"--ros-args" ,
91
84
"ros-args" ,
92
85
"--" ,
93
86
"non-ros2" ,
94
87
"non-ros3" ,
95
88
]
96
- . into_iter ( )
97
- . map ( |x| x. to_string ( ) )
98
- . collect ( ) ;
89
+ . map ( |x| x. to_string ( ) ) ;
99
90
100
91
let non_ros_args: Vec < String > = extract_non_ros_args ( input_args) . unwrap ( ) ;
101
92
let expected = vec ! [ "non-ros1" , "non-ros2" , "non-ros3" ] ;
0 commit comments