X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=third-party%2Ftriemap%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Ftriemap%2FCNode.java;h=b16355d67e965b345956328b32c4e41813ad34eb;hb=edf71b3a0e03f13a9537076551718e2a995ecebe;hp=ba6109eea76de4900e364390c00ec2a59766b428;hpb=6c8920a2138a8a445e7478f5277a2c690cbb0ed6;p=yangtools.git diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java index ba6109eea7..b16355d67e 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java @@ -61,7 +61,7 @@ final class CNode extends MainNode { // this should only be called from within read-only snapshots @Override - int cachedSize(final TrieMap ct) { + int cachedSize(final TrieMap ct) { int sz = csize; if (sz == NO_SIZE) { // We have not computed the size yet, do that now @@ -80,7 +80,7 @@ final class CNode extends MainNode { // => if there are concurrent size computations, they start // at different positions, so they are more likely to // to be independent - private int computeSize(final TrieMap ct) { + private int computeSize(final TrieMap ct) { int i = 0; int sz = 0; // final int offset = (array.length > 0) ? @@ -97,7 +97,7 @@ final class CNode extends MainNode { if (elem instanceof SNode) { sz += 1; } else if (elem instanceof INode) { - sz += ((INode) elem).cachedSize(ct); + sz += ((INode) elem).cachedSize(ct); } i += 1; } @@ -143,8 +143,7 @@ final class CNode extends MainNode { while (i < len) { BasicNode elem = arr[i]; if (elem instanceof INode) { - INode in = (INode) elem; - narr [i] = in.copyToGen(ngen, ct); + narr [i] = ((INode) elem).copyToGen(ngen, ct); } else if (elem != null) { narr [i] = elem; } @@ -153,20 +152,10 @@ final class CNode extends MainNode { return new CNode<>(ngen, bitmap, narr); } - private BasicNode resurrect(final INode inode, final Object inodemain) { - if (inodemain instanceof TNode) { - TNode tn = (TNode) inodemain; - return tn.copyUntombed(); - } - - return inode; - } - MainNode toContracted(final int lev) { if (array.length == 1 && lev > 0) { if (array[0] instanceof SNode) { - final SNode sn = (SNode) array[0]; - return sn.copyTombed(); + return ((SNode) array[0]).copyTombed(); } return this; } @@ -180,7 +169,7 @@ final class CNode extends MainNode { // returns the version of this node with at least some null-inodes // removed (those existing when the op began) // - if there are only null-i-nodes below, returns null - MainNode toCompressed(final TrieMap ct, final int lev, final Gen gen) { + MainNode toCompressed(final TrieMap ct, final int lev, final Gen gen) { int bmp = bitmap; int i = 0; BasicNode[] arr = array; @@ -188,10 +177,10 @@ final class CNode extends MainNode { while (i < arr.length) { // construct new bitmap BasicNode sub = arr[i]; if (sub instanceof INode) { - INode in = (INode) sub; - MainNode inodemain = in.gcasRead (ct); + final INode in = (INode) sub; + final MainNode inodemain = in.gcasRead(ct); assert (inodemain != null); - tmparray [i] = resurrect (in, inodemain); + tmparray [i] = resurrect(in, inodemain); } else if (sub instanceof SNode) { tmparray [i] = sub; } @@ -201,6 +190,10 @@ final class CNode extends MainNode { return new CNode(gen, bmp, tmparray).toContracted(lev); } + private static BasicNode resurrect(final INode inode, final MainNode inodemain) { + return inodemain instanceof TNode ? ((TNode) inodemain).copyUntombed() : inode; + } + @Override String string(final int lev) { // "CNode %x\n%s".format(bitmap, array.map(_.string(lev +