summaryrefslogtreecommitdiff
path: root/rust/src
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src')
-rw-r--r--rust/src/low_level_il/function.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/rust/src/low_level_il/function.rs b/rust/src/low_level_il/function.rs
index 65c3536a..ca6508c9 100644
--- a/rust/src/low_level_il/function.rs
+++ b/rust/src/low_level_il/function.rs
@@ -88,8 +88,9 @@ where
}
pub(crate) fn arch(&self) -> CoreArchitecture {
+ // TODO: self.function() can return None under rare circumstances
match self.arch {
- None => self.function().arch(),
+ None => self.function().unwrap().arch(),
Some(arch) => arch,
}
}
@@ -167,10 +168,13 @@ where
}
}
- pub fn function(&self) -> Ref<Function> {
+ pub fn function(&self) -> Option<Ref<Function>> {
unsafe {
let func = BNGetLowLevelILOwnerFunction(self.handle);
- Function::ref_from_raw(func)
+ if func.is_null() {
+ return None;
+ }
+ Some(Function::ref_from_raw(func))
}
}