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) {
LongRenderer.writeSignedIntOrLongTo(writer, number.longValue());
writer.write(suffix);
writeResourceId(writer, number.longValue());
writer.write("\n");
}
writer.deindent(4);

View File

@ -43,6 +43,7 @@ import org.jf.util.IndentingWriter;
import javax.annotation.Nonnull;
import java.io.IOException;
import java.util.Map;
public class InstructionMethodItem<T extends Instruction> extends MethodItem {
@Nonnull protected final MethodDefinition methodDef;
@ -140,6 +141,7 @@ public class InstructionMethodItem<T extends Instruction> 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<T extends Instruction> extends MethodItem {
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 {
writer.write("field@0x");

View File

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

View File

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