From 51b326d5a6a88f4efc0e7c239d41af749c35a628 Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Mon, 18 May 2009 01:21:00 +0000 Subject: [PATCH] Fixed a bug in the logic to read in an EncodedValue git-svn-id: https://smali.googlecode.com/svn/trunk@43 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- .../dexlib/EncodedValue/EncodedIndexedItemReference.java | 2 +- .../java/org/JesusFreke/dexlib/EncodedValue/EncodedValue.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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); }