code: private void deleteFringeMigrate(
                                      DeleteStack   stack,
                                      GBSNode       p)
      {
          GBSNode endp = p;              /* Last node processed                   */
          int endIndex = stack.index();  /* Index to last parent                  */
          stack.add(0, p);               /* Put last node in stack for possible   */
                                         /*  use by rebalance                     */
                                         /* Maximum number of right child nodes   */
                                         /*  before the fringe must be rebalanced */
          int maxBal = maximumFringeImbalance();
  
          stack.processSubFringe(p);     /* See DeleteStack.processNode           */
  
          endp = stack.lastNode();
          endIndex = stack.lastIndex();
          deleteCheckFringeBalance(
                                  stack,
                                  endp,
                                  endIndex,
                                  maxBal);
  
      }
docs: Migrate a hole from a partial leaf through to the proper place
  in its fringe, deleting a node from the right side of the fringe
  if necessary.
  
  <p>This may cause a fringe t0 tree to degenerate to a linear list
  which, in turn, will trigger a height rebalancing.</p>
  
  @param tree  The index we are using
  @param stack The stack that has been used to walk the tree
  @param p     Node from which we are migrating.  Its right-most
  slot is the hole being migrated.