sboag       00/11/08 08:56:20

  Modified:    java/src/org/apache/xpath/axes WalkerFactory.java
  Log:
  Don't use child iterator if predicate is used.
  
  Revision  Changes    Path
  1.4       +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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WalkerFactory.java        2000/11/02 17:21:47     1.3
  +++ WalkerFactory.java        2000/11/08 16:56:10     1.4
  @@ -253,7 +253,7 @@
         //                   ? namespace.equals(NodeTest.WILD) : false;
         // String localname = compiler.getStepLocalName(stepOpCodePos);
         // boolean isWild = (null != localname) ? 
localname.equals(NodeTest.WILD) : false;
  -      // int predAnalysis = analyzePredicate(compiler, stepOpCodePos, 
stepType);
  +      int predAnalysis = analyzePredicate(compiler, stepOpCodePos, stepType);
         switch (stepType)
         {
         case OpCodes.OP_VARIABLE :
  @@ -287,7 +287,10 @@
             {
   
               // System.out.println("ONESTEP_CHILDREN_ANY");
  -            analysisResult = ONESTEP_CHILDREN_ANY;
  +            if(predAnalysis == HAS_NOPREDICATE)
  +              analysisResult = ONESTEP_CHILDREN_ANY;
  +            else
  +              analysisResult = NO_OPTIMIZE;
             }
             else
               analysisResult = ONESTEP_CHILDREN;
  
  
  

Reply via email to