From bcdc0d9b89605936a1cb6cf3ffaaece60d3c5777 Mon Sep 17 00:00:00 2001 From: Ryan Snyder Date: Fri, 24 Jan 2025 17:57:26 -0500 Subject: uidf refactor --- rust/src/medium_level_il/function.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'rust/src/medium_level_il/function.rs') diff --git a/rust/src/medium_level_il/function.rs b/rust/src/medium_level_il/function.rs index 8f91c731..ec5d9dec 100644 --- a/rust/src/medium_level_il/function.rs +++ b/rust/src/medium_level_il/function.rs @@ -205,6 +205,7 @@ impl MediumLevelILFunction { var: &Variable, addr: u64, value: PossibleValueSet, + after: bool, ) -> Result<(), ()> { let Some(_def_site) = self .var_definitions(var) @@ -221,7 +222,7 @@ impl MediumLevelILFunction { }; let raw_var = BNVariable::from(var); let raw_value = PossibleValueSet::into_raw(value); - unsafe { BNSetUserVariableValue(function.handle, &raw_var, &def_site, &raw_value) } + unsafe { BNSetUserVariableValue(function.handle, &raw_var, &def_site, after, &raw_value) } PossibleValueSet::free_owned_raw(raw_value); Ok(()) } @@ -230,7 +231,7 @@ impl MediumLevelILFunction { /// /// * `var` - Variable for which the value was informed /// * `def_addr` - Address of the definition site of the variable - pub fn clear_user_var_value(&self, var: &Variable, addr: u64) -> Result<(), ()> { + pub fn clear_user_var_value(&self, var: &Variable, addr: u64, after: bool) -> Result<(), ()> { let Some(_var_def) = self .var_definitions(var) .iter() @@ -247,7 +248,7 @@ impl MediumLevelILFunction { address: addr, }; - unsafe { BNClearUserVariableValue(function.handle, &raw_var, &def_site) }; + unsafe { BNClearUserVariableValue(function.handle, &raw_var, &def_site, after) }; Ok(()) } @@ -264,7 +265,7 @@ impl MediumLevelILFunction { /// Clear all user defined variable values. pub fn clear_user_var_values(&self) -> Result<(), ()> { for user_var_val in &self.user_var_values() { - self.clear_user_var_value(&user_var_val.variable, user_var_val.def_site.addr)?; + self.clear_user_var_value(&user_var_val.variable, user_var_val.def_site.addr, user_var_val.after)?; } Ok(()) } -- cgit v1.3.1