From c41c24a0c2f17acfd06e3765544009b458c264d3 Mon Sep 17 00:00:00 2001 From: Lanchon Date: Sun, 24 Sep 2017 22:01:34 -0300 Subject: [PATCH] MemoryDataStore: Support InputStream mark/reset --- .../org/jf/dexlib2/writer/io/MemoryDataStore.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 3e28317e..a3b22d6c 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 @@ -70,6 +70,7 @@ public class MemoryDataStore implements DexDataStore { @Nonnull @Override public InputStream readAt(final int offset) { return new InputStream() { private int position = offset; + private int mark = offset; @Override public int read() throws IOException { if (position >= size) { @@ -113,6 +114,18 @@ public class MemoryDataStore implements DexDataStore { @Override public int available() throws IOException { return Math.max(0, size - position); } + + @Override public void mark(int i) { + mark = position; + } + + @Override public void reset() throws IOException { + position = mark; + } + + @Override public boolean markSupported() { + return true; + } }; }