Trim the end of the last coalesced try-item.

R=ager

Bug: 65864735
Change-Id: I35a4ed1192e9c14f4db0e49ca5c16f479cdd005b
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
index 9c8ed1c..4d97764 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
@@ -633,8 +633,12 @@
     // Coalesce try blocks.
     tryItems.sort(TryItem::compareTo);
     List<TryItem> coalescedTryItems = new ArrayList<>(tryItems.size());
+    TryItem item = null;
     for (int i = 0; i < tryItems.size(); ) {
-      TryItem item = tryItems.get(i);
+      if (item != null) {
+        item.end = trimEnd(blocksWithHandlers.get(i - 1));
+      }
+      item = tryItems.get(i);
       coalescedTryItems.add(item);
       // Trim the range start for non-throwing instructions when starting a new range.
       List<com.android.tools.r8.ir.code.Instruction> instructions = blocksWithHandlers.get(i).getInstructions();
@@ -649,7 +653,6 @@
       while (i < tryItems.size()) {
         TryItem next = tryItems.get(i);
         if (item.end != next.start || !item.handlers.equals(next.handlers)) {
-          item.end = trimEnd(blocksWithHandlers.get(i - 1));
           break;
         }
         item.end = next.end;
@@ -658,8 +661,7 @@
     }
     // Trim the last try range.
     int lastIndex = tryItems.size() - 1;
-    TryItem lastItem = tryItems.get(lastIndex);
-    lastItem.end = trimEnd(blocksWithHandlers.get(lastIndex));
+    item.end = trimEnd(blocksWithHandlers.get(lastIndex));
     return coalescedTryItems;
   }