@@ -109,23 +109,26 @@ pub(crate) type ParameterOverrideMap = BTreeMap<String, ParameterValue>;
109
109
/// sizes or dangling pointers.
110
110
pub ( crate ) unsafe fn resolve_parameter_overrides (
111
111
node_fqn : String ,
112
+ rcl_node_arguments : & rcl_arguments_t ,
112
113
rcl_global_arguments : & rcl_arguments_t ,
113
114
) -> Result < ParameterOverrideMap , RclrsError > {
114
115
let mut map = BTreeMap :: new ( ) ;
115
- let mut rcl_params = std:: ptr:: null_mut ( ) ;
116
- rcl_arguments_get_param_overrides ( rcl_global_arguments, & mut rcl_params) . ok ( ) ?;
117
- // Check for the /** node first, and later overwrite with the more specific node
118
- // parameters, if they exist
119
- for name_to_match in [ "/**" , node_fqn. as_str ( ) ] {
120
- for ( node_name, node_params) in RclParamsIter :: new ( rcl_params) {
121
- if node_name == name_to_match {
122
- for ( param_name, variant) in RclNodeParamsIter :: new ( node_params) {
123
- let value = ParameterValue :: from_rcl_variant ( variant) ;
124
- map. insert ( param_name, value) ;
116
+ for rcl_arguments in [ rcl_global_arguments, rcl_node_arguments] {
117
+ let mut rcl_params = std:: ptr:: null_mut ( ) ;
118
+ rcl_arguments_get_param_overrides ( rcl_arguments, & mut rcl_params) . ok ( ) ?;
119
+ // Check for the /** node first, and later overwrite with the more specific node
120
+ // parameters, if they exist
121
+ for name_to_match in [ "/**" , node_fqn. as_str ( ) ] {
122
+ for ( node_name, node_params) in RclParamsIter :: new ( rcl_params) {
123
+ if node_name == name_to_match {
124
+ for ( param_name, variant) in RclNodeParamsIter :: new ( node_params) {
125
+ let value = ParameterValue :: from_rcl_variant ( variant) ;
126
+ map. insert ( param_name, value) ;
127
+ }
125
128
}
126
129
}
127
130
}
131
+ rcl_yaml_node_struct_fini ( rcl_params) ;
128
132
}
129
- rcl_yaml_node_struct_fini ( rcl_params) ;
130
133
Ok ( map)
131
134
}
0 commit comments