Skip to content

Commit 4a63b75

Browse files
committed
add member name smali
1 parent e7d07c2 commit 4a63b75

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ see some examples.
6464
- [x] quick jump to specific metadata
6565
- [x] search classes
6666
- [x] jump to offset or type descriptor
67+
- [ ] Settings (e.g. custom fonts, theme, etc.)
68+
- [ ] decompiling by using mapping file.
6769

6870
### Goals
6971

asm/src/impls/dex/r/smali.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,15 +483,15 @@ impl PayloadMap<'_> {
483483
fn render_field(accessor: &DexFileAccessor, field_idx: u16) -> SmaliNode {
484484
accessor.get_field(field_idx)
485485
.map(|f| stb()
486-
.d(f.class_type).other(f.field_name).d(f.field_type).s()
486+
.d(f.class_type).mn(f.field_name).d(f.field_type).s()
487487
).unwrap_or_else(|_| raw_smali!("field@{}", field_idx))
488488
}
489489

490490
// guaranteed have no children
491491
fn render_method(accessor: &DexFileAccessor, method_idx: u16) -> SmaliNode {
492492
accessor.get_method(method_idx)
493493
.map(|m| stb()
494-
.d(m.class_type).other(m.method_name).d(m.desc).s()
494+
.d(m.class_type).mn(m.method_name).d(m.desc).s()
495495
).unwrap_or_else(|_| raw_smali!("method@{}", method_idx))
496496
}
497497

@@ -766,7 +766,7 @@ impl FieldElement {
766766
tb = FieldAccessFlags::render(access_flags, tb);
767767
let name = self.name.clone();
768768
let descriptor = self.descriptor.clone();
769-
let smali = tb.other(name).d(descriptor).s();
769+
let smali = tb.mn(name).d(descriptor).s();
770770
smali
771771
}
772772
}
@@ -778,7 +778,7 @@ impl MethodElement {
778778
tb = MethodAccessFlags::render(access_flags, tb);
779779
let name = self.name.clone();
780780
let descriptor = format!("({}){}", self.parameters.join(""), self.return_type);
781-
let mut smali = tb.other(name).d(descriptor.to_ref()).s();
781+
let mut smali = tb.mn(name).d(descriptor.to_ref()).s();
782782
let code = accessor.get_code_item(self.code_off)?;
783783
if let Some(code) = code {
784784
smali.children.extend(code.to_smali(accessor).children);

asm/src/smali.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ pub enum SmaliToken {
3131

3232
Register(u16),
3333
RegisterRange(u16, u16),
34+
35+
MemberName(StrRef),
3436
Descriptor(StrRef),
3537
Literal(StrRef),
3638

@@ -104,6 +106,11 @@ impl SmaliTokensBuilder {
104106
self.push(SmaliToken::RegisterRange(start.into(), end.into()))
105107
}
106108

109+
#[inline]
110+
pub fn mn(self, name: StrRef) -> Self {
111+
self.push(SmaliToken::MemberName(name))
112+
}
113+
107114
#[inline]
108115
pub fn d(self, desc: StrRef) -> Self {
109116
self.push(SmaliToken::Descriptor(desc))
@@ -136,6 +143,7 @@ impl SmaliToken {
136143
}
137144
Self::Register(reg) => format!("v{reg}"),
138145
Self::RegisterRange(start, end) => format!("v{start}..v{end}"),
146+
Self::MemberName(name) => name.to_string(),
139147
Self::Descriptor(desc) => desc.to_string(),
140148
Self::Literal(lit) => lit.to_string(),
141149
Self::Other(other) => other.to_string(),

asm_egui/src/smali.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,15 @@ impl<'a> RenderContext<'a> {
132132
self.scroll_to_offset(ui, line_index, *absolute);
133133
}
134134
text_ui
135-
}
135+
},
136136
SmaliToken::Register(s) => simple_text(ui, format!("v{s}"), font, smali_style.register),
137137
SmaliToken::RegisterRange(start, end) => {
138138
let text = format!("v{start}..v{end}");
139139
simple_text(ui, text, font, smali_style.register)
140-
}
140+
},
141+
SmaliToken::MemberName(name) => {
142+
simple_text(ui, name.to_string(), font, dft_color)
143+
},
141144
SmaliToken::Descriptor(s) => {
142145
let text_ui = simple_text(ui, s.to_string(), font, smali_style.desc)
143146
.on_hover_ui(|ui| {

0 commit comments

Comments
 (0)