Treat unknown opcodes as nops

This commit is contained in:
Ben Gruver 2012-06-28 23:13:45 -07:00
parent 9069177bff
commit 2f81aec886

View File

@ -53,9 +53,10 @@ public class InstructionIterator {
Instruction instruction = null; Instruction instruction = null;
if (opcode == null) { if (opcode == null) {
throw new RuntimeException("Unknown opcode: " + Hex.u1(insns[insnsPosition])); System.err.println(String.format("unknown opcode encountered - %x. Treating as nop.",
} (opcodeValue & 0xFFFF)));
instruction = new Instruction10x(Opcode.NOP, insns, insnsPosition);
} else {
if (opcode == Opcode.NOP) { if (opcode == Opcode.NOP) {
byte secondByte = insns[insnsPosition + 1]; byte secondByte = insns[insnsPosition + 1];
switch (secondByte) { switch (secondByte) {
@ -83,6 +84,7 @@ public class InstructionIterator {
} else { } else {
instruction = opcode.format.Factory.makeInstruction(dexFile, opcode, insns, insnsPosition); instruction = opcode.format.Factory.makeInstruction(dexFile, opcode, insns, insnsPosition);
} }
}
assert instruction != null; assert instruction != null;