aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gruver <bgruv@google.com>2017-10-02 19:06:30 -0700
committerBen Gruver <bgruv@google.com>2017-10-02 19:10:31 -0700
commit38f575608f038e8b3b4b40675dd1db6ca24de217 (patch)
tree0e180bfaf117ba4e454ad9c92eaec71fecaf3356
parent20a272dbb9d6383e04f3fbb5e444e44fbe657cc1 (diff)
downloadsmali-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.java4
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);