From 7e9231a211bf00451229d88edb5c7fbd5085f73e Mon Sep 17 00:00:00 2001 From: Jeff Smith Date: Mon, 11 Nov 2013 11:30:11 -0600 Subject: [PATCH] baksmali: Write comments about matched resource IDs --- .../jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java | 1 + .../baksmali/Adaptors/Format/InstructionMethodItem.java | 9 +++++++++ .../baksmali/Adaptors/Format/PackedSwitchMethodItem.java | 3 +++ .../baksmali/Adaptors/Format/SparseSwitchMethodItem.java | 1 + 4 files changed, 14 insertions(+) diff --git a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java index f621a589..42359922 100644 --- a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java +++ b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/ArrayDataMethodItem.java @@ -65,6 +65,7 @@ public class ArrayDataMethodItem extends InstructionMethodItem { for (Number number: elements) { LongRenderer.writeSignedIntOrLongTo(writer, number.longValue()); writer.write(suffix); + writeResourceId(writer, number.longValue()); writer.write("\n"); } writer.deindent(4); diff --git a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/InstructionMethodItem.java b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/InstructionMethodItem.java index b4508005..9b27f5ed 100644 --- a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/InstructionMethodItem.java +++ b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/InstructionMethodItem.java @@ -43,6 +43,7 @@ import org.jf.util.IndentingWriter; import javax.annotation.Nonnull; import java.io.IOException; +import java.util.Map; public class InstructionMethodItem extends MethodItem { @Nonnull protected final MethodDefinition methodDef; @@ -140,6 +141,7 @@ public class InstructionMethodItem extends MethodItem { writeFirstRegister(writer); writer.write(", "); writeLiteral(writer); + writeResourceId(writer, ((WideLiteralInstruction)instruction).getWideLiteral()); return true; case Format21t: case Format31t: @@ -337,6 +339,13 @@ public class InstructionMethodItem extends MethodItem { LongRenderer.writeSignedIntOrLongTo(writer, ((WideLiteralInstruction)instruction).getWideLiteral()); } + protected void writeResourceId(IndentingWriter writer, long val) throws IOException { + Map resourceIds = methodDef.classDef.options.resourceIds; + if (resourceIds.containsKey(Long.valueOf(val))) { + writer.write(" # "); + writer.write(resourceIds.get(Long.valueOf(val))); + } + } protected void writeFieldOffset(IndentingWriter writer) throws IOException { writer.write("field@0x"); diff --git a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/PackedSwitchMethodItem.java b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/PackedSwitchMethodItem.java index 45b68c28..4d768956 100644 --- a/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/PackedSwitchMethodItem.java +++ b/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/PackedSwitchMethodItem.java @@ -82,9 +82,12 @@ public class PackedSwitchMethodItem extends InstructionMethodItem "); target.writeTargetTo(writer); + writeResourceId(writer, target.getKey()); writer.write('\n'); } writer.deindent(4);