diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBuffer.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBuffer.java index 1f214e69..80f3f8bc 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBuffer.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBuffer.java @@ -150,7 +150,7 @@ public class DexBuffer { return buf; } - protected int getBaseOffset() { + public int getBaseOffset() { return baseOffset; } } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java index 83b3ebbc..96ebe5ce 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/util/DexAnnotator.java @@ -175,7 +175,7 @@ public class DexAnnotator extends AnnotatedBytes { annotator.annotateSection(this); } } finally { - writeAnnotations(out, dexFile.getBuffer().getBuf()); + writeAnnotations(out, dexFile.getBuffer().getBuf(), dexFile.getBuffer().getBaseOffset()); } } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/util/AnnotatedBytes.java b/dexlib2/src/main/java/org/jf/dexlib2/util/AnnotatedBytes.java index 5b4e3ee8..3f2626a3 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/util/AnnotatedBytes.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/util/AnnotatedBytes.java @@ -281,7 +281,7 @@ public class AnnotatedBytes { * * @param out non-null; where to write to */ - public void writeAnnotations(Writer out, byte[] data) throws IOException { + public void writeAnnotations(Writer out, byte[] data, int offset) throws IOException { int rightWidth = getAnnotationWidth(); int leftWidth = outputWidth - rightWidth - 1; @@ -315,14 +315,14 @@ public class AnnotatedBytes { right = ""; } - String left = Hex.dump(data, rangeStart, rangeEnd - rangeStart, rangeStart, hexCols, 6); + String left = Hex.dump(data, rangeStart + offset, rangeEnd - rangeStart, rangeStart + offset, hexCols, 6); twoc.write(left, right); } int lastKey = keys[keys.length-1]; if (lastKey < data.length) { - String left = Hex.dump(data, lastKey, data.length - lastKey, lastKey, hexCols, 6); + String left = Hex.dump(data, lastKey + offset, (data.length - offset) - lastKey, lastKey + offset, hexCols, 6); twoc.write(left, ""); } }