diff --git a/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedIndexedItemReference.java b/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedIndexedItemReference.java index c3a32a52..cec9b984 100644 --- a/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedIndexedItemReference.java +++ b/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedIndexedItemReference.java @@ -69,7 +69,7 @@ public class EncodedIndexedItemReference> public void readFrom(Input in) { setReference(((IndexedSection)getSection()).getByIndex( - (int)EncodedValueUtils.decodeUnsignedIntegralValue(in.readBytes(initialValueArg)))); + (int)EncodedValueUtils.decodeUnsignedIntegralValue(in.readBytes(initialValueArg + 1)))); } public int place(int offset) { diff --git a/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedValue.java b/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedValue.java index 14d1e773..967de9f0 100644 --- a/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedValue.java +++ b/src/main/java/org/JesusFreke/dexlib/EncodedValue/EncodedValue.java @@ -108,6 +108,7 @@ public class EncodedValue extends CompositeField { public void readFrom(Input in) { subField = EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, getValueType()); + subField.setInitialValueArg(getValueArg()); subField.readFrom(in); }