code: private void internalGetNext(DeleteStack    stack,
                                  int            v1,
                                  int            x1)
      {
          if (_last1._xno == x1)
          {
              SearchComparator comp = searchComparator(SearchComparator.EQ);
              GBSNode p = _last1.node();
              int x = p.searchAll(comp, _last1.key());
              if (x >= 0)
              {
                  if ((x+1) < p.population())
                  {
                      _current1.setLocation(p, x+1);
                      _current1.setLocation(p.key(x+1), v1, x1);
                  }
                  else
                  {
                      p = nextNode(stack);
                      _current1.setLocation(p, 0);
                      if (p != null)
                      {
                          Object q = p.leftMostKey();
                          _current1.setLocation(q, v1, x1);
                      }
                  }
              }
          }
  
          if (_current1.key() == null)
              internalSearchNext(stack, v1, x1);
      }
docs: Get the next key when vno (and perhaps xno) has changed.
  
  <p>vno (and perhaps xno) has changed.  If xno is unchanged then we
  have to assume that the keys in the current node have changed.
  They may not have changed but since we do not have a separate vno
  per node we can't tell.  So search the node for the last key given
  out in order to re-establish the former position.  If the last key
  given out no longer exists in the current node then we move to the
  next node and if there is a next node return the left-most key
  in the next node.</p>
  
  <p>If this yields no result or xno has changed then we have to
  search the tree for the next key that is greater than the last one
  given out.<p>
  
  @param stack The stack used to record the traversal.
  @param v1 A local copy of _index.vno().
  @param x1 A local copy of _index.xno().