From ea7c265d125c3037a09388280b00d3973e56f10f Mon Sep 17 00:00:00 2001 From: Lanchon Date: Sun, 24 Sep 2017 19:35:57 -0300 Subject: [PATCH] MemoryDataStore: Fix growth calculation --- .../java/org/jf/dexlib2/writer/io/MemoryDataStore.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/io/MemoryDataStore.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/io/MemoryDataStore.java index 5797f806..0b077ce9 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/io/MemoryDataStore.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/io/MemoryDataStore.java @@ -25,7 +25,7 @@ public class MemoryDataStore implements DexDataStore { return new OutputStream() { private int position = offset; @Override public void write(int b) throws IOException { - growBufferIfNeeded(position); + growBufferIfNeeded(position + 1); buf[position++] = (byte)b; } @@ -43,11 +43,11 @@ public class MemoryDataStore implements DexDataStore { }; } - private void growBufferIfNeeded(int index) { - if (index < buf.length) { + private void growBufferIfNeeded(int minSize) { + if (minSize <= buf.length) { return; } - buf = Arrays.copyOf(buf, (int)((index + 1) * 1.2)); + buf = Arrays.copyOf(buf, (int)(minSize * 1.2)); } @Nonnull @Override public InputStream readAt(final int offset) {