You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sa...@apache.org on 2004/01/14 21:20:04 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
santiagopg 2004/01/14 12:20:04
Modified: java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
ForEach.java PositionCall.java
java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
Removed: java/src/org/apache/xalan/xsltc/compiler
ForwardPositionExpr.java
java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java
Log:
Committing a patch from Bhakti Mehta (Bhakti.Mehta@sun.com). ForwardPositionIterators and ForwardPositionExprs are not needed anymore after the intergration with DTM. Despite that, ForwardPositionIterators were still being used even though they did not provide any additional functionally (they were basically identity iterators). This patch eliminates the need for these iterators (and the corresponding compile-time expressions) and also replaces calls to BasisLibrary.positionF() with calls to currentIterator.getPosition(). The resulting code should be smaller and faster.
Revision Changes Path
1.19 +1 -6 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.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ApplyTemplates.java 19 Dec 2003 15:26:48 -0000 1.18
+++ ApplyTemplates.java 14 Jan 2004 20:20:03 -0000 1.19
@@ -109,11 +109,6 @@
if (select.length() > 0) {
_select = parser.parseExpression(this, "select", null);
- // Wrap _select in a ForwardPositionExpr
- final Expression fpe = new ForwardPositionExpr(_select);
- _select.setParent(fpe);
- fpe.setParser(_select.getParser());
- _select = fpe;
}
if (mode.length() > 0) {
1.18 +3 -9 xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForEach.java
Index: ForEach.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForEach.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ForEach.java 19 Dec 2003 15:26:48 -0000 1.17
+++ ForEach.java 14 Jan 2004 20:20:03 -0000 1.18
@@ -106,13 +106,6 @@
if (_select.isDummy()) {
reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "select");
}
- else {
- // Wrap _select in a ForwardPositionExpr
- final Expression fpe = new ForwardPositionExpr(_select);
- _select.setParent(fpe);
- fpe.setParser(_select.getParser());
- _select = fpe;
- }
}
public Type typeCheck(SymbolTable stable) throws TypeCheckError {
@@ -177,7 +170,8 @@
}
if (_type instanceof ReferenceType == false) {
- _select.startIterator(classGen, methodGen);
+ il.append(methodGen.loadContextNode());
+ il.append(methodGen.setStartNode());
}
}
1.13 +6 -6 xml-xalan/java/src/org/apache/xalan/xsltc/compiler/PositionCall.java
Index: PositionCall.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/PositionCall.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- PositionCall.java 30 Jan 2003 18:46:01 -0000 1.12
+++ PositionCall.java 14 Jan 2004 20:20:03 -0000 1.13
@@ -66,7 +66,7 @@
import org.apache.bcel.generic.ConstantPoolGen;
import org.apache.bcel.generic.ILOAD;
-import org.apache.bcel.generic.INVOKESTATIC;
+import org.apache.bcel.generic.INVOKEINTERFACE;
import org.apache.bcel.generic.InstructionList;
import org.apache.xalan.xsltc.compiler.util.ClassGenerator;
import org.apache.xalan.xsltc.compiler.util.CompareGenerator;
@@ -94,12 +94,12 @@
}
else {
final ConstantPoolGen cpg = classGen.getConstantPool();
- final int index =
- cpg.addMethodref(BASIS_LIBRARY_CLASS, "positionF",
- "("+NODE_ITERATOR_SIG+")I");
+ final int index = cpg.addInterfaceMethodref(NODE_ITERATOR,
+ "getPosition",
+ "()I");
il.append(methodGen.loadIterator());
- il.append(new INVOKESTATIC(index));
+ il.append(new INVOKEINTERFACE(index,1));
}
}
}
1.68 +1 -10 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java
Index: BasisLibrary.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- BasisLibrary.java 23 Dec 2003 15:34:51 -0000 1.67
+++ BasisLibrary.java 14 Jan 2004 20:20:04 -0000 1.68
@@ -111,15 +111,6 @@
}
/**
- * Standard function position()
- */
- public static int positionF(DTMAxisIterator iterator) {
- return iterator.isReverse()
- ? iterator.getLast() - iterator.getPosition() + 1
- : iterator.getPosition();
- }
-
- /**
* XSLT Standard function sum(node-set).
* stringToDouble is inlined
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org