You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@apache.org on 2001/01/04 09:02:51 UTC

cvs commit: xml-xalan/java/src/org/apache/xpath/axes WalkerFactory.java

sboag       01/01/04 00:02:51

  Modified:    java/src/org/apache/xpath/axes WalkerFactory.java
  Log:
  Fix bug where ChildTestIterator was being created for "node()"
  patterns, instead of ChildIterator.
  
  Revision  Changes    Path
  1.12      +5 -2      xml-xalan/java/src/org/apache/xpath/axes/WalkerFactory.java
  
  Index: WalkerFactory.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/WalkerFactory.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- WalkerFactory.java	2000/12/27 22:24:11	1.11
  +++ WalkerFactory.java	2001/01/04 08:02:51	1.12
  @@ -178,7 +178,6 @@
             Compiler compiler, int opPos)
               throws javax.xml.transform.TransformerException
     {
  -
       int firstStepPos = compiler.getFirstChildPos(opPos);
       int analysis = analyze(compiler, firstStepPos, 0);
       
  @@ -186,8 +185,12 @@
       // Is the iteration exactly one child step?
       if ((BIT_CHILD | 0x00000001) == (analysis & (BIT_CHILD | BITS_COUNT)))
       {
  +      //                 BIT_NODETEST_ANY: 1000000000000000000000000000000
  +      //                 BIT_PREDICATE:                      1000000000000
  +      // new iterator:  ChildIterator: 1000000000000010000000000000001, node()
         // Does the pattern specify *any* child with no predicate? (i.e. select="child::node()".
  -      if (BIT_CHILD == (analysis & BIT_NODETEST_ANY) && !(BIT_PREDICATE == (analysis & BIT_PREDICATE)))
  +      if ((BIT_NODETEST_ANY == (analysis & BIT_NODETEST_ANY)) && 
  +         !(BIT_PREDICATE == (analysis & BIT_PREDICATE)))
         {
           if (DEBUG_ITERATOR_CREATION)
             System.out.println("new iterator:  ChildIterator: "