diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/Format/Instruction31c.java b/dexlib/src/main/java/org/jf/dexlib/Code/Format/Instruction31c.java index 4213cea8..5eccff74 100644 --- a/dexlib/src/main/java/org/jf/dexlib/Code/Format/Instruction31c.java +++ b/dexlib/src/main/java/org/jf/dexlib/Code/Format/Instruction31c.java @@ -54,6 +54,10 @@ public class Instruction31c extends InstructionWithReference implements SingleRe super(dexFile, opcode, buffer, bufferIndex); } + protected int getReferencedItemIndex() { + return NumberUtils.decodeInt(buffer, bufferIndex + 2); + } + public Format getFormat() { return Format.Format31c; } diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/InstructionWithReference.java b/dexlib/src/main/java/org/jf/dexlib/Code/InstructionWithReference.java index 891411f2..63652a9e 100644 --- a/dexlib/src/main/java/org/jf/dexlib/Code/InstructionWithReference.java +++ b/dexlib/src/main/java/org/jf/dexlib/Code/InstructionWithReference.java @@ -43,10 +43,14 @@ public abstract class InstructionWithReference extends Instruction { protected InstructionWithReference(DexFile dexFile, Opcode opcode, byte[] buffer, int bufferIndex) { super(opcode, buffer, bufferIndex); - int itemIndex = NumberUtils.decodeUnsignedShort(buffer, bufferIndex + 2); + int itemIndex = getReferencedItemIndex(); lookupReferencedItem(dexFile, opcode, itemIndex); } + protected int getReferencedItemIndex() { + return NumberUtils.decodeUnsignedShort(buffer, bufferIndex + 2); + } + public Item getReferencedItem() { return referencedItem; }