diff graal/com.oracle.graal.options/src/com/oracle/graal/options/OptionValue.java @ 18935:07f2a49f0bfb

Various adjustments to simplify future merges
author Paul Woegerer <paul.woegerer@oracle.com>
date Fri, 23 Jan 2015 15:51:35 +0100
parents 18d0f83cd290
children cecb4e39521c
line wrap: on
line diff
--- a/graal/com.oracle.graal.options/src/com/oracle/graal/options/OptionValue.java	Fri Jan 23 14:32:11 2015 +0100
+++ b/graal/com.oracle.graal.options/src/com/oracle/graal/options/OptionValue.java	Fri Jan 23 15:51:35 2015 +0100
@@ -46,7 +46,7 @@
      * </pre>
      */
     public static OverrideScope override(OptionValue<?> option, Object value) {
-        OverrideScope current = overrideScopes.get();
+        OverrideScope current = getOverrideScope();
         if (current == null) {
             if (!value.equals(option.getValue())) {
                 return new SingleOverrideScope(option, value);
@@ -76,7 +76,7 @@
      * </pre>
      */
     public static OverrideScope override(Map<OptionValue<?>, Object> overrides) {
-        OverrideScope current = overrideScopes.get();
+        OverrideScope current = getOverrideScope();
         if (current == null && overrides.size() == 1) {
             Entry<OptionValue<?>, Object> single = overrides.entrySet().iterator().next();
             OptionValue<?> option = single.getKey();
@@ -106,7 +106,7 @@
      * @param overrides overrides in the form {@code [option1, override1, option2, override2, ...]}
      */
     public static OverrideScope override(Object... overrides) {
-        OverrideScope current = overrideScopes.get();
+        OverrideScope current = getOverrideScope();
         if (current == null && overrides.length == 2) {
             OptionValue<?> option = (OptionValue<?>) overrides[0];
             Object overrideValue = overrides[1];
@@ -128,7 +128,15 @@
         return new MultipleOverridesScope(current, map);
     }
 
-    static final ThreadLocal<OverrideScope> overrideScopes = new ThreadLocal<>();
+    private static final ThreadLocal<OverrideScope> overrideScopeTL = new ThreadLocal<>();
+
+    protected static OverrideScope getOverrideScope() {
+        return overrideScopeTL.get();
+    }
+
+    protected static void setOverrideScope(OverrideScope overrideScope) {
+        overrideScopeTL.set(overrideScope);
+    }
 
     private T initialValue;
 
@@ -227,7 +235,7 @@
      */
     public boolean hasInitialValue() {
         if (!(this instanceof StableOptionValue)) {
-            OverrideScope overrideScope = overrideScopes.get();
+            OverrideScope overrideScope = getOverrideScope();
             if (overrideScope != null) {
                 T override = overrideScope.getOverride(this);
                 if (override != null) {
@@ -246,7 +254,7 @@
             reads++;
         }
         if (!(this instanceof StableOptionValue)) {
-            OverrideScope overrideScope = overrideScopes.get();
+            OverrideScope overrideScope = getOverrideScope();
             if (overrideScope != null) {
                 T override = overrideScope.getOverride(this);
                 if (override != null) {
@@ -272,7 +280,7 @@
     public Collection<T> getValues(Collection<T> c) {
         Collection<T> values = c == null ? new ArrayList<>() : c;
         if (!(this instanceof StableOptionValue)) {
-            OverrideScope overrideScope = overrideScopes.get();
+            OverrideScope overrideScope = getOverrideScope();
             if (overrideScope != null) {
                 overrideScope.getOverrides(this, (Collection<Object>) values);
             }
@@ -334,7 +342,7 @@
             }
             this.option = option;
             this.value = value;
-            overrideScopes.set(this);
+            setOverrideScope(this);
         }
 
         @Override
@@ -360,7 +368,7 @@
 
         @Override
         public void close() {
-            overrideScopes.set(null);
+            setOverrideScope(null);
         }
     }
 
@@ -381,7 +389,7 @@
                 this.overrides.put(option, value);
             }
             if (!overrides.isEmpty()) {
-                overrideScopes.set(this);
+                setOverrideScope(this);
             }
         }
 
@@ -405,7 +413,7 @@
                 }
             }
             if (!this.overrides.isEmpty()) {
-                overrideScopes.set(this);
+                setOverrideScope(this);
             }
         }
 
@@ -437,7 +445,7 @@
         @Override
         public void close() {
             if (!overrides.isEmpty()) {
-                overrideScopes.set(parent);
+                setOverrideScope(parent);
             }
         }
     }