From 57b919fdf2e293dc8f855af51bfd5d31a6b7320f Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Sat, 20 Jun 2009 19:57:29 +0000 Subject: [PATCH] Fixed issue when reading an array-data pseudo instruction whose data ended in the middle of a 2-byte word git-svn-id: https://smali.googlecode.com/svn/trunk@173 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- .../code/Format/ArrayDataPseudoInstruction.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dexlib/src/main/java/org/jf/dexlib/code/Format/ArrayDataPseudoInstruction.java b/dexlib/src/main/java/org/jf/dexlib/code/Format/ArrayDataPseudoInstruction.java index 4d0e3ca6..e117b193 100644 --- a/dexlib/src/main/java/org/jf/dexlib/code/Format/ArrayDataPseudoInstruction.java +++ b/dexlib/src/main/java/org/jf/dexlib/code/Format/ArrayDataPseudoInstruction.java @@ -60,6 +60,10 @@ public class ArrayDataPseudoInstruction extends Instruction int elementCount = byteCount / elementWidth; + if (byteCount % 2 != 0) { + byteCount++; + } + encodedInstruction = new byte[byteCount+8]; encodedInstruction[0] = 0x00; encodedInstruction[1] = 0x03; //fill-array-data psuedo-opcode @@ -106,6 +110,13 @@ public class ArrayDataPseudoInstruction extends Instruction for (int i=0; i