Skip to content

Commit 7c04b4b

Browse files
committed
Add parameter_variables API to Function in Rust
1 parent e88d386 commit 7c04b4b

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

rust/src/function.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ pub use binaryninjacore_sys::BNAnalysisSkipReason as AnalysisSkipReason;
3030
pub use binaryninjacore_sys::BNFunctionAnalysisSkipOverride as FunctionAnalysisSkipOverride;
3131
pub use binaryninjacore_sys::BNFunctionUpdateType as FunctionUpdateType;
3232

33-
3433
use std::hash::Hash;
3534
use std::{fmt, mem};
3635

@@ -315,6 +314,22 @@ impl Function {
315314
}
316315
}
317316

317+
pub fn parameter_variables(&self) -> Conf<Vec<Variable>> {
318+
unsafe {
319+
let mut variables = BNGetFunctionParameterVariables(self.handle);
320+
let mut result = Vec::with_capacity(variables.count);
321+
let confidence = variables.confidence;
322+
let vars = std::slice::from_raw_parts(variables.vars, variables.count);
323+
324+
for i in 0..variables.count {
325+
result.push(Variable::from_raw(vars[i]));
326+
}
327+
328+
BNFreeParameterVariables(&mut variables);
329+
Conf::new(result, confidence)
330+
}
331+
}
332+
318333
pub fn apply_imported_types(&self, sym: &Symbol, t: Option<&Type>) {
319334
unsafe {
320335
BNApplyImportedTypes(

0 commit comments

Comments
 (0)