*/
static final Object RESTART = new Object();
- static <K,V> INode<K,V> newRootNode() {
- Gen gen = new Gen ();
- CNode<K, V> cn = new CNode<> (0, new BasicNode[] {}, gen);
- return new INode<>(gen, cn);
- }
-
INode(final Gen gen, final MainNode<K, V> bn) {
super(gen, bn);
}
}
public TrieMap (final Hashing<K> hashf, final Equiv<K> ef) {
- this(INode.newRootNode(), hashf, ef, false);
+ this(newRootNode(), hashf, ef, false);
}
public TrieMap () {
// } while (obj != TrieMapSerializationEnd);
// }
+
+ private static <K,V> INode<K,V> newRootNode() {
+ final Gen gen = new Gen();
+ final CNode<K, V> cn = new CNode<>(0, new BasicNode[] {}, gen);
+ return new INode<>(gen, cn);
+ }
+
final boolean CAS_ROOT (final Object ov, final Object nv) {
if (isReadOnly()) {
throw new IllegalStateException("Attempted to modify a read-only snapshot");
final public void clear () {
while (true) {
INode<K, V> r = RDCSS_READ_ROOT ();
- if (!RDCSS_ROOT (r, r.gcasRead (this), INode.<K, V>newRootNode ())) {
+ if (!RDCSS_ROOT(r, r.gcasRead(this), newRootNode())) {
continue;
}else{
return;
private void readObject(final ObjectInputStream inputStream) throws IOException, ClassNotFoundException {
inputStream.defaultReadObject();
- this.root = INode.newRootNode();
+ this.root = newRootNode();
final boolean ro = inputStream.readBoolean();
final int size = inputStream.readInt();