summaryrefslogtreecommitdiff
path: root/rust/src/medium_level_il/function.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/medium_level_il/function.rs')
-rw-r--r--rust/src/medium_level_il/function.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/rust/src/medium_level_il/function.rs b/rust/src/medium_level_il/function.rs
index 4206f7dd..54df3d12 100644
--- a/rust/src/medium_level_il/function.rs
+++ b/rust/src/medium_level_il/function.rs
@@ -47,11 +47,10 @@ impl MediumLevelILFunction {
loc: L,
) -> Option<MediumLevelInstructionIndex> {
let loc: Location = loc.into();
- let arch = loc
- .arch
- .map(|a| a.handle)
- .unwrap_or_else(std::ptr::null_mut);
- let instr_idx = unsafe { BNMediumLevelILGetInstructionStart(self.handle, arch, loc.addr) };
+ // If the location does not specify an architecture, use the function's architecture.
+ let arch = loc.arch.unwrap_or_else(|| self.function().arch());
+ let instr_idx =
+ unsafe { BNMediumLevelILGetInstructionStart(self.handle, arch.handle, loc.addr) };
// `instr_idx` will equal self.instruction_count() if the instruction is not valid.
if instr_idx >= self.instruction_count() {
None