Skip to content

Commit 2d3d5db

Browse files
committed
[Rust] Add Function::defined_symbol to use when getting the default function symbol is not warranted
1 parent edd71a0 commit 2d3d5db

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

rust/src/function.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,23 @@ impl Function {
338338
}
339339
}
340340

341+
/// Returns the symbol at the function start address or a default symbol.
342+
///
343+
/// NOTE: If you want to only get the symbol if there is actually a symbol, use [`Function::defined_symbol`].
341344
pub fn symbol(&self) -> Ref<Symbol> {
342345
unsafe {
343346
let sym = BNGetFunctionSymbol(self.handle);
344347
Symbol::ref_from_raw(sym)
345348
}
346349
}
347350

351+
/// Returns the symbol at the function start address or `None` if there is no symbol.
352+
///
353+
/// NOTE: If you want to get a default "sub_X" symbol use [`Function::symbol`].
354+
pub fn defined_symbol(&self) -> Option<Ref<Symbol>> {
355+
self.view().symbol_by_address(self.start())
356+
}
357+
348358
/// Returns true when the function's symbol binding marks it as exported.
349359
pub fn is_exported(&self) -> bool {
350360
let symbol = self.symbol();

0 commit comments

Comments
 (0)