private static void reclaimChildren( @NotNull final PatriciaReclaimSourceTraverser source, @NotNull final PatriciaReclaimActualTraverser actual) { source.moveToNextReclaimable(); while (source.isValidPos() && actual.isValidPos()) { final ChildReference sourceChild = source.currentChild; final int sourceByte = sourceChild.firstByte & 0xff; final int actualByte = actual.currentChild.firstByte & 0xff; if (sourceByte < actualByte) { source.moveRight(); } else if (sourceByte > actualByte) { actual.moveRight(); } else { source.moveDown(); actual.moveDown(); reclaim(source, actual); actual.popAndMutate(); source.moveUp(); source.moveRight(); actual.moveRight(); } } }