[PATCH] minor regex cleanup: use switch for enum

Isaac Levy isaac.r.levy at gmail.com
Wed Apr 18 18:58:09 UTC 2018


Hi,

Minor improvement in readability (and probably perf) for Pattern. Switch is
more consistent with the rest of the impl and the resulting tableswitch
avoids a comparison for possessives.

-Isaac

--- a/src/java.base/share/classes/java/util/regex/Pattern.java
+++ b/src/java.base/share/classes/java/util/regex/Pattern.java
@@ -4356,7 +4356,9 @@
-            if (type == Qtype.GREEDY)
+            switch (type) {
+            case GREEDY:
                 return match0(matcher, i, j, seq);
-            else if (type == Qtype.LAZY)
+            case LAZY:
                 return match1(matcher, i, j, seq);
-            else
+            default:
                 return match2(matcher, i, j, seq);
+            }

@@ -4527,7 +4529,10 @@
-                if (type == Qtype.GREEDY) {
+                switch (type) {
+                case GREEDY:
                     ret = match0(matcher, i, cmin, seq);
+                    break;
-                } else if (type == Qtype.LAZY) {
+                case LAZY:
                     ret = match1(matcher, i, cmin, seq);
+                    break;
-                } else {
+                default:
                     ret = match2(matcher, i, cmin, seq);
                 }


More information about the core-libs-dev mailing list