Example #1
0
 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();
     }
   }
 }