Add "Metadata" symbol to Symbol enum

This commit is contained in:
Felix Schütt
2023-01-04 17:03:02 +01:00
parent 398c13821b
commit 5df8789910
2 changed files with 17 additions and 13 deletions

View File

@ -43,6 +43,7 @@ struct ShortNames {}
impl SymbolRegistry for ShortNames {
fn symbol_to_name(&self, symbol: Symbol) -> String {
match symbol {
Symbol::Metadata(prefix) => format!("M{}", prefix),
Symbol::LocalFunction(index) => format!("f{}", index.index()),
Symbol::Section(index) => format!("s{}", index.index()),
Symbol::FunctionCallTrampoline(index) => format!("t{}", index.index()),
@ -55,6 +56,10 @@ impl SymbolRegistry for ShortNames {
return None;
}
let (ty, idx) = name.split_at(1);
if ty.starts_with('M') {
return Some(Symbol::Metadata(idx.to_string()));
}
let idx = idx.parse::<u32>().ok()?;
match ty.chars().next().unwrap() {
'f' => Some(Symbol::LocalFunction(LocalFunctionIndex::from_u32(idx))),