commit | 9827aa8acc96503d7b4872fe61c803ba84a388fc | [log] [tgz] |
---|---|---|
author | Morten Krogh-Jespersen <mkroghj@google.com> | Thu Jun 04 22:43:05 2020 +0200 |
committer | Morten Krogh-Jespersen <mkroghj@google.com> | Thu Jun 04 22:43:05 2020 +0200 |
tree | 7630a14bcd8b826008dfcbb34630303fe152fcf5 | |
parent | 1c33998cae480572368de29efbaae79c423f5d07 [diff] |
Version 2.0.78 Cherry pick: Account for unordered mapped positions in LineNumberOptimizer CL: https://r8-review.googlesource.com/51803 Bug: 157758209 Change-Id: I50e3119b0b0740d3010b9c371ed1b524d2aaec82
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java index 18a3cd7..988ad95 100644 --- a/src/main/java/com/android/tools/r8/Version.java +++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@ // This field is accessed from release scripts using simple pattern matching. // Therefore, changing this field could break our release scripts. - public static final String LABEL = "2.0.77"; + public static final String LABEL = "2.0.78"; private Version() { }
diff --git a/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java b/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java index c7324da..44a23f2 100644 --- a/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java +++ b/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
@@ -388,7 +388,14 @@ || !Objects.equals(mp.caller, lastPosition.caller)) { break; } - lastPosition = mp; + // The mapped positions are not guaranteed to be in order, so maintain first and last + // position. + if (firstPosition.obfuscatedLine > mp.obfuscatedLine) { + firstPosition = mp; + } + if (lastPosition.obfuscatedLine < mp.obfuscatedLine) { + lastPosition = mp; + } } Range obfuscatedRange = new Range(firstPosition.obfuscatedLine, lastPosition.obfuscatedLine);