From 193dea95daedde471e6f1fbcbeaf1932c6fbd50c Mon Sep 17 00:00:00 2001 From: Rubens Brandao Date: Sat, 6 Apr 2024 16:32:00 -0300 Subject: replace BStr with str --- rust/src/callingconvention.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'rust/src/callingconvention.rs') diff --git a/rust/src/callingconvention.rs b/rust/src/callingconvention.rs index 56755b37..815f4d42 100644 --- a/rust/src/callingconvention.rs +++ b/rust/src/callingconvention.rs @@ -448,24 +448,21 @@ impl CallingConvention { unsafe { BnString::from_raw(BNGetCallingConventionName(self.handle)) } } - pub fn variables_for_parameters( + pub fn variables_for_parameters( &self, - params: &[FunctionParameter], + params: &[FunctionParameter], permitted_registers: Option<&[A::Register]>, ) -> Vec { let mut bn_params: Vec = vec![]; - let mut name_strings = vec![]; + let name_strings = params.iter().map(|parameter| ¶meter.name); - for parameter in params.iter() { - name_strings.push(parameter.name.clone().into_bytes_with_nul()); - } - for (parameter, raw_name) in params.iter().zip(name_strings.iter_mut()) { + for (parameter, raw_name) in params.iter().zip(name_strings) { let location = match ¶meter.location { Some(location) => location.raw(), None => unsafe { mem::zeroed() }, }; bn_params.push(BNFunctionParameter { - name: raw_name.as_ref().as_ptr() as *mut _, + name: BnString::new(raw_name).into_raw(), type_: parameter.t.contents.handle, typeConfidence: parameter.t.confidence, defaultLocation: parameter.location.is_none(), @@ -501,9 +498,6 @@ impl CallingConvention { } }; - // Gotta keep this around so the pointers are valid during the call - drop(name_strings); - let vars_slice = unsafe { slice::from_raw_parts(vars, count) }; let mut result = vec![]; for var in vars_slice { -- cgit v1.3.1