diff options
author | Ben Gruver <bgruv@google.com> | 2017-10-02 19:06:30 -0700 |
---|---|---|
committer | Ben Gruver <bgruv@google.com> | 2017-10-02 19:10:31 -0700 |
commit | 38f575608f038e8b3b4b40675dd1db6ca24de217 (patch) | |
tree | 0e180bfaf117ba4e454ad9c92eaec71fecaf3356 | |
parent | 20a272dbb9d6383e04f3fbb5e444e44fbe657cc1 (diff) | |
download | smali-38f575608f038e8b3b4b40675dd1db6ca24de217.tar.gz |
Fix line_start annotation in debug_info_item
line_start can be > 2^31, so we have to use readBigUleb128 instead
of readSmallUleb128
-rw-r--r-- | dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/DebugInfoItem.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/DebugInfoItem.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/DebugInfoItem.java index 1ddd4ac0..32ee4cc9 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/DebugInfoItem.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/DebugInfoItem.java @@ -52,8 +52,8 @@ public class DebugInfoItem { public void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { DexReader reader = dexFile.readerAt(out.getCursor()); - int lineStart = reader.readSmallUleb128(); - out.annotateTo(reader.getOffset(), "line_start = %d", lineStart); + int lineStart = reader.readBigUleb128(); + out.annotateTo(reader.getOffset(), "line_start = %d", lineStart & 0xFFFFFFFFL); int parametersSize = reader.readSmallUleb128(); out.annotateTo(reader.getOffset(), "parameters_size = %d", parametersSize); |