code: public final boolean pop() throws XMLStreamException
      {
          if (mCurrElement == null) {
              throw new IllegalStateException("Popping from empty stack");
          }
          --mDepth;
  
          Element child = mCurrElement;
          Element parent = child.mParent;
          mCurrElement = parent;
  
          // Let's do simple recycling of Element instances...
          child.relink(mFreeElement);
          mFreeElement = child;
              
          // Need to purge namespaces?
          int nsCount = mNamespaces.size() - child.mNsOffset;
          if (nsCount > 0) { // 2 entries for each NS mapping:
              mLastNsContext = null; // let's invalidate ns ctxt too, if we had one
              mNamespaces.removeLast(nsCount);
          }
          return (parent != null);
      }
docs: Method called by the stream reader to remove the topmost (start)
  element from the stack;
  called when an end element is encountered during parsing.
  
  @return True if stack has more elements; false if not (that is,
  root element closed)