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;