From 9393c08e36c60ef55928d9d9780e5420695b9b1b Mon Sep 17 00:00:00 2001 From: Izzat Bahadirov Date: Fri, 21 Dec 2012 19:02:10 -0500 Subject: [PATCH] Using tempBuf when writing encoded floats and doubles. Otherwise, output dex file gets corrupted. --- .../src/main/java/org/jf/dexlib2/writer/DexWriter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java index b7d55b5a..ef17fd63 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java @@ -238,11 +238,11 @@ public class DexWriter extends OutputStream { int index = 3; do { - buf[index--] = (byte)((intValue & 0xFF000000) >>> 24); + tempBuf[index--] = (byte)((intValue & 0xFF000000) >>> 24); intValue <<= 8; } while (intValue != 0); writeEncodedValueHeader(valueType, 4-index); - write(buf, index+1, 4-index); + write(tempBuf, index+1, 4-index); } public void writeEncodedDouble(int valueType, double value) throws IOException { @@ -250,11 +250,11 @@ public class DexWriter extends OutputStream { int index = 7; do { - buf[index--] = (byte)((longValue & 0xFF00000000000000L) >>> 56); + tempBuf[index--] = (byte)((longValue & 0xFF00000000000000L) >>> 56); longValue <<= 8; } while (longValue != 0); writeEncodedValueHeader(valueType, 7-index); - write(buf, index+1, 7-index); + write(tempBuf, index+1, 7-index); } public void writeString(String string) throws IOException {