From b64be8ba36f20b16e26ffd44b3e46cc2c057c3b6 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Fri, 28 Dec 2012 22:01:10 -0800 Subject: [PATCH] Make sure we write an even number of bytes for an array data instruction --- .../main/java/org/jf/dexlib2/writer/CodeItemPool.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/CodeItemPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/CodeItemPool.java index 125ec52c..909aa177 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/CodeItemPool.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/CodeItemPool.java @@ -507,21 +507,25 @@ public class CodeItemPool { for (Number element: elements) { writer.write(element.byteValue()); } - return; + break; case 2: for (Number element: elements) { writer.writeShort(element.shortValue()); } - return; + break; case 4: for (Number element: elements) { writer.writeInt(element.intValue()); } - return; + break; case 8: for (Number element: elements) { writer.writeLong(element.longValue()); } + break; + } + if ((writer.getPosition() & 1) != 0) { + writer.write(0); } }