MCPcopy Index your code
hub / github.com/encounter/objdiff / find_symbol

Method find_symbol

objdiff-wasm/src/api.rs:637–664  ·  view source on GitHub ↗
(&self, name: String, section_name: Option<String>)

Source from the content-addressed store, hash-verified

635
636impl GuestObjectDiff for ResourceObjectDiff {
637 fn find_symbol(&self, name: String, section_name: Option<String>) -> Option<SymbolInfo> {
638 let obj = self.0.as_ref();
639 let symbol_idx = obj.symbols.iter().position(|s| {
640 s.name == name
641 && match section_name.as_deref() {
642 Some(section_name) => {
643 s.section.is_some_and(|n| obj.sections[n].name == section_name)
644 }
645 None => true,
646 }
647 })?;
648 let symbol = obj.symbols.get(symbol_idx)?;
649 let section = symbol.section.and_then(|s| obj.sections.get(s));
650 Some(SymbolInfo {
651 id: symbol_idx as SymbolRef,
652 name: symbol.name.clone(),
653 demangled_name: symbol.demangled_name.clone(),
654 address: symbol.address,
655 size: symbol.size,
656 kind: SymbolKind::from(symbol.kind),
657 section: symbol.section.map(|s| s as u32),
658 section_name: section.map(|sec| sec.name.clone()),
659 section_kind: section.map_or(SectionKind::Unknown, |sec| sec.kind.into()),
660 flags: SymbolFlags::from(symbol.flags),
661 align: symbol.align.map(|a| a.get()),
662 virtual_address: symbol.virtual_address,
663 })
664 }
665
666 fn get_symbol(&self, symbol_ref: SymbolRef) -> Option<SymbolInfo> {
667 let obj = self.0.as_ref();

Callers

nothing calls this directly

Calls 1

getMethod · 0.80

Tested by

no test coverage detected