Update checksum marker comparison

Change-Id: Ia0feaa5ed018472049056f141870b7f9d5390d8a
diff --git a/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java b/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java
index ffdb9a4..3624975 100644
--- a/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java
+++ b/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java
@@ -83,13 +83,22 @@
       assert PREFIX.length() == 3;
       char[] prefix = new char[PREFIX.length()];
       int prefixLength = string.decodePrefix(prefix);
-      return prefixLength == 0
-          || (prefixLength == 1 && prefix[0] <= PREFIX_CHAR0)
-          || (prefixLength == 2 && prefix[0] == PREFIX_CHAR0 && prefix[1] <= PREFIX_CHAR1)
-          || (prefixLength == 3
-              && prefix[0] == PREFIX_CHAR0
-              && prefix[1] == PREFIX_CHAR1
-              && prefix[2] < PREFIX_CHAR2);
+      if (prefixLength == 0) {
+        return true;
+      }
+      if (prefix[0] != PREFIX_CHAR0) {
+        return prefix[0] < PREFIX_CHAR0;
+      }
+      if (prefixLength == 1) {
+        return true;
+      }
+      if (prefix[1] != PREFIX_CHAR1) {
+        return prefix[1] < PREFIX_CHAR1;
+      }
+      if (prefixLength == 2) {
+        return true;
+      }
+      return prefix[2] < PREFIX_CHAR2;
     } catch (UTFDataFormatException e) {
       throw new RuntimeException("Bad format", e);
     }
diff --git a/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java b/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java
index c5ad260..24601c1 100644
--- a/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java
+++ b/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java
@@ -121,6 +121,14 @@
     assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("~")));
     assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("}")));
 
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("z")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("zz")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("zzz")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("zzzz")));
+
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("this")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("println")));
+
     // False negatives.
     assertFalse(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("~~~")));
     assertFalse(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("~~~z")));