changeset 22702:96fc3db82426

Use lazy class loading instead of explicit assertionsEnabled check
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 25 Sep 2015 11:22:37 -0700
parents f36a430db1c2
children d5793a653996
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRPhase.java graal/com.oracle.graal.phases/src/com/oracle/graal/phases/BasePhase.java
diffstat 2 files changed, 8 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRPhase.java	Tue Sep 22 17:43:05 2015 -0700
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRPhase.java	Fri Sep 25 11:22:37 2015 -0700
@@ -85,17 +85,13 @@
         }
     };
 
-    @SuppressWarnings("all")
-    private static boolean assertionsEnabled() {
-        boolean enabled = false;
-        assert enabled = true;
-        return enabled;
+    /** Lazy initialization to create pattern only when assertions are enabled. */
+    static class NamePatternHolder {
+        static final Pattern NAME_PATTERN = Pattern.compile("[A-Z][A-Za-z0-9]+");
     }
 
-    private static final Pattern NAME_PATTERN = assertionsEnabled() ? Pattern.compile("[A-Z][A-Za-z0-9]+") : null;
-
     private static boolean checkName(String name) {
-        assert name == null || NAME_PATTERN.matcher(name).matches() : "illegal phase name: " + name;
+        assert name == null || NamePatternHolder.NAME_PATTERN.matcher(name).matches() : "illegal phase name: " + name;
         return true;
     }
 
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/BasePhase.java	Tue Sep 22 17:43:05 2015 -0700
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/BasePhase.java	Fri Sep 25 11:22:37 2015 -0700
@@ -63,17 +63,13 @@
      */
     private final DebugMemUseTracker memUseTracker;
 
-    @SuppressWarnings("all")
-    private static boolean assertionsEnabled() {
-        boolean enabled = false;
-        assert enabled = true;
-        return enabled;
+    /** Lazy initialization to create pattern only when assertions are enabled. */
+    static class NamePatternHolder {
+        static final Pattern NAME_PATTERN = Pattern.compile("[A-Z][A-Za-z0-9]+");
     }
 
-    private static final Pattern NAME_PATTERN = assertionsEnabled() ? Pattern.compile("[A-Z][A-Za-z0-9]+") : null;
-
     private static boolean checkName(String name) {
-        assert NAME_PATTERN.matcher(name).matches() : "illegal phase name: " + name;
+        assert NamePatternHolder.NAME_PATTERN.matcher(name).matches() : "illegal phase name: " + name;
         return true;
     }