diff options
| author | Ryan Snyder <ryan@vector35.com> | 2025-01-24 17:57:26 -0500 |
|---|---|---|
| committer | Ryan Snyder <ryan@vector35.com> | 2025-02-14 15:58:56 -0500 |
| commit | bcdc0d9b89605936a1cb6cf3ffaaece60d3c5777 (patch) | |
| tree | 7286bd0963a49d9b90ddccf3a4b70b71c08e6ce5 /rust/src/medium_level_il/function.rs | |
| parent | 071811547bded7cf570125a03bb12d0b7c56a5ac (diff) | |
uidf refactor
Diffstat (limited to 'rust/src/medium_level_il/function.rs')
| -rw-r--r-- | rust/src/medium_level_il/function.rs | 9 |
1 files changed, 5 insertions, 4 deletions
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(()) } |
