zongaro     2003/02/11 02:39:21

  Modified:    java/src/org/apache/xml/dtm/ref Tag: xslt20
                        DTMDefaultBaseIterators.java
  Log:
  Propagating fix for Bugzilla bug 9575.  The AncestorIterator was incorrectly
  returning the document root twice.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.15.2.1.2.2 +11 -9     
xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBaseIterators.java
  
  Index: DTMDefaultBaseIterators.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBaseIterators.java,v
  retrieving revision 1.15.2.1.2.1
  retrieving revision 1.15.2.1.2.2
  diff -u -r1.15.2.1.2.1 -r1.15.2.1.2.2
  --- DTMDefaultBaseIterators.java      30 Jan 2003 00:39:54 -0000      1.15.2.1.2.1
  +++ DTMDefaultBaseIterators.java      11 Feb 2003 10:39:21 -0000      1.15.2.1.2.2
  @@ -1491,8 +1491,6 @@
           else
             _startNode = getParent(node);
   
  -        _currentNode = getDocumentRoot(node);
  -        
           node = _startNode;
           while (node != END)
           {
  @@ -1501,6 +1499,10 @@
           }
           m_ancestorsPos = m_ancestors.size()-1;
   
  +        _currentNode = (m_ancestorsPos>=0)
  +                               ? m_ancestors.elementAt(m_ancestorsPos)
  +                               : DTM.NULL;
  +
           return resetPosition();
         }
   
  @@ -1515,11 +1517,12 @@
        */
       public DTMAxisIterator reset()
       {
  -
  -      _currentNode = getDocumentRoot(_startNode);
               
         m_ancestorsPos = m_ancestors.size()-1;
   
  +      _currentNode = (m_ancestorsPos>=0) ? m_ancestors.elementAt(m_ancestorsPos)
  +                                         : DTM.NULL;
  +
         return resetPosition();
       }
   
  @@ -1533,11 +1536,10 @@
   
         int next = _currentNode;
         
  -      int pos = m_ancestorsPos--;
  -      if(pos < 0)
  -         _currentNode = DTM.NULL;
  -      else
  -              _currentNode = m_ancestors.elementAt(pos);
  +      int pos = --m_ancestorsPos;
  +
  +      _currentNode = (pos >= 0) ? m_ancestors.elementAt(m_ancestorsPos)
  +                                : DTM.NULL;
         
         return returnNode(next);
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to