amiro       02/03/11 14:29:56

  Modified:    java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
               java/src/org/apache/xalan/xsltc/dom UnionIterator.java
  Log:
  fix 5573 for XSLTMark alphabetize test
  
  Revision  Changes    Path
  1.12      +5 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyTemplates.java
  
  Index: ApplyTemplates.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyTemplates.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ApplyTemplates.java       1 Feb 2002 20:07:08 -0000       1.11
  +++ ApplyTemplates.java       11 Mar 2002 22:29:56 -0000      1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ApplyTemplates.java,v 1.11 2002/02/01 20:07:08 tmiller Exp $
  + * @(#)$Id: ApplyTemplates.java,v 1.12 2002/03/11 22:29:56 amiro Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -139,6 +139,7 @@
        * some template in the stylesheet uses parameters. 
        */
       public void translate(ClassGenerator classGen, MethodGenerator methodGen) {
  +     boolean setStartNodeCalled = false;
        final Stylesheet stylesheet = classGen.getStylesheet();
        final ConstantPoolGen cpg = classGen.getConstantPool();
        final InstructionList il = methodGen.getInstructionList();
  @@ -165,6 +166,7 @@
            translateContents(classGen, methodGen);
        }
   
  +
        il.append(classGen.loadTranslet());
   
        // The 'select' expression is a result-tree
  @@ -192,6 +194,7 @@
                                                             NODE_ITERATOR_SIG);
                il.append(methodGen.loadCurrentNode());
                il.append(new INVOKEINTERFACE(setStartNode,2));
  +             setStartNodeCalled = true;      
            }
            else {
                if (_select == null)
  @@ -201,7 +204,7 @@
            }
        }
   
  -     if (_select != null) {
  +     if (_select != null && !setStartNodeCalled) {
            _select.startResetIterator(classGen, methodGen);
        }
   
  
  
  
  1.11      +4 -2      xml-xalan/java/src/org/apache/xalan/xsltc/dom/UnionIterator.java
  
  Index: UnionIterator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/UnionIterator.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- UnionIterator.java        4 Dec 2001 10:30:07 -0000       1.10
  +++ UnionIterator.java        11 Mar 2002 22:29:56 -0000      1.11
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: UnionIterator.java,v 1.10 2001/12/04 10:30:07 morten Exp $
  + * @(#)$Id: UnionIterator.java,v 1.11 2002/03/11 22:29:56 amiro Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -152,8 +152,10 @@
            final int smallest = _heap[0].node;
            if (smallest == END) { // iterator _heap[0] is done
                if (_heapSize > 1) {
  -                 // replace it with last
  +                 // Swap first and last (iterator must be restartable)
  +                 final LookAheadIterator temp = _heap[0];
                    _heap[0] = _heap[--_heapSize];
  +                 _heap[_heapSize] = temp;
                }
                else {
                    return END;
  
  
  

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

Reply via email to