baksmali: Write comments about matched resource IDs

This commit is contained in:
Jeff Smith 2013-11-11 11:30:11 -06:00
parent 29d4ccc8a9
commit 7e9231a211
4 changed files with 14 additions and 0 deletions

View File

@ -65,6 +65,7 @@ public class ArrayDataMethodItem extends InstructionMethodItem<ArrayPayload> {
for (Number number: elements) { for (Number number: elements) {
LongRenderer.writeSignedIntOrLongTo(writer, number.longValue()); LongRenderer.writeSignedIntOrLongTo(writer, number.longValue());
writer.write(suffix); writer.write(suffix);
writeResourceId(writer, number.longValue());
writer.write("\n"); writer.write("\n");
} }
writer.deindent(4); writer.deindent(4);

View File

@ -43,6 +43,7 @@ import org.jf.util.IndentingWriter;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import java.io.IOException; import java.io.IOException;
import java.util.Map;
public class InstructionMethodItem<T extends Instruction> extends MethodItem { public class InstructionMethodItem<T extends Instruction> extends MethodItem {
@Nonnull protected final MethodDefinition methodDef; @Nonnull protected final MethodDefinition methodDef;
@ -140,6 +141,7 @@ public class InstructionMethodItem<T extends Instruction> extends MethodItem {
writeFirstRegister(writer); writeFirstRegister(writer);
writer.write(", "); writer.write(", ");
writeLiteral(writer); writeLiteral(writer);
writeResourceId(writer, ((WideLiteralInstruction)instruction).getWideLiteral());
return true; return true;
case Format21t: case Format21t:
case Format31t: case Format31t:
@ -337,6 +339,13 @@ public class InstructionMethodItem<T extends Instruction> extends MethodItem {
LongRenderer.writeSignedIntOrLongTo(writer, ((WideLiteralInstruction)instruction).getWideLiteral()); LongRenderer.writeSignedIntOrLongTo(writer, ((WideLiteralInstruction)instruction).getWideLiteral());
} }
protected void writeResourceId(IndentingWriter writer, long val) throws IOException {
Map<Long,String> 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 { protected void writeFieldOffset(IndentingWriter writer) throws IOException {
writer.write("field@0x"); writer.write("field@0x");

View File

@ -82,9 +82,12 @@ public class PackedSwitchMethodItem extends InstructionMethodItem<PackedSwitchPa
IntegerRenderer.writeTo(writer, firstKey); IntegerRenderer.writeTo(writer, firstKey);
writer.indent(4); writer.indent(4);
writer.write('\n'); writer.write('\n');
long key = firstKey;
for (PackedSwitchTarget target: targets) { for (PackedSwitchTarget target: targets) {
target.writeTargetTo(writer); target.writeTargetTo(writer);
writeResourceId(writer, key);
writer.write('\n'); writer.write('\n');
key++;
} }
writer.deindent(4); writer.deindent(4);
writer.write(".end packed-switch"); writer.write(".end packed-switch");

View File

@ -71,6 +71,7 @@ public class SparseSwitchMethodItem extends InstructionMethodItem<SparseSwitchPa
IntegerRenderer.writeTo(writer, target.getKey()); IntegerRenderer.writeTo(writer, target.getKey());
writer.write(" -> "); writer.write(" -> ");
target.writeTargetTo(writer); target.writeTargetTo(writer);
writeResourceId(writer, target.getKey());
writer.write('\n'); writer.write('\n');
} }
writer.deindent(4); writer.deindent(4);