BUG-7464: remove TrieMap.nonReadOnly()
[yangtools.git] / third-party / triemap / src / main / java / org / opendaylight / yangtools / triemap / INode.java
index 2e8efe65241282beb0e125e9e6a232d032ffa2b7..2be06f0ad507f61a52860681e1652abba99c3da4 100644 (file)
@@ -88,7 +88,7 @@ final class INode<K, V> extends BasicNode {
             // ==> if `ctr.gen` = `gen` then they are both equal to G.
             // ==> otherwise, we know that either `ctr.gen` > G, `gen` < G,
             // or both
-            if ((ctr.gen == gen) && ct.nonReadOnly()) {
+            if (ctr.gen == gen && !ct.isReadOnly()) {
                 // try to commit
                 if (m.CAS_PREV(prev, null)) {
                     return m;
@@ -415,17 +415,17 @@ final class INode<K, V> extends BasicNode {
 
     private Object cleanReadOnly(final TNode<K, V> tn, final int lev, final INode<K, V> parent,
             final TrieMap<K, V> ct, final K k, final int hc) {
-        if (ct.nonReadOnly()) {
-            // used to be throw RestartException
-            clean(parent, ct, lev - 5);
-            return RESTART;
-        }
+        if (ct.isReadOnly()) {
+            if (tn.hc == hc && ct.equal(tn.k, k)) {
+                return tn.v;
+            }
 
-        if (tn.hc == hc && ct.equal(tn.k, k)) {
-            return tn.v;
+            return null;
         }
 
-        return null;
+        // used to be throw RestartException
+        clean(parent, ct, lev - 5);
+        return RESTART;
     }
 
     /**