minchau 2003/10/15 14:03:50
Modified: java/src/org/apache/xalan/xsltc/compiler Tag:
xslt20-compiled UnaryOpExpr.java LogicalExpr.java
Predicate.java RelationalExpr.java BinOpExpr.java
Log:
Fix for bugzilla 15327
Revision Changes Path
No revision
No revision
1.6.6.1 +8 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnaryOpExpr.java
Index: UnaryOpExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnaryOpExpr.java,v
retrieving revision 1.6
retrieving revision 1.6.6.1
diff -u -r1.6 -r1.6.6.1
--- UnaryOpExpr.java 30 Jan 2003 18:46:02 -0000 1.6
+++ UnaryOpExpr.java 15 Oct 2003 21:03:50 -0000 1.6.6.1
@@ -85,6 +85,13 @@
return(_left.hasPositionCall());
}
+ /**
+ * Returns true if this expressions contains a call to last()
+ */
+ public boolean hasLastCall() {
+ return(_left.hasLastCall());
+ }
+
public void setParser(Parser parser) {
super.setParser(parser);
_left.setParser(parser);
1.12.6.1 +8 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LogicalExpr.java
Index: LogicalExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LogicalExpr.java,v
retrieving revision 1.12
retrieving revision 1.12.6.1
diff -u -r1.12 -r1.12.6.1
--- LogicalExpr.java 30 Jan 2003 18:46:01 -0000 1.12
+++ LogicalExpr.java 15 Oct 2003 21:03:50 -0000 1.12.6.1
@@ -105,6 +105,13 @@
}
/**
+ * Returns true if this expressions contains a call to last()
+ */
+ public boolean hasLastCall() {
+ return (_left.hasLastCall() || _right.hasLastCall());
+ }
+
+ /**
* Returns an object representing the compile-time evaluation
* of an expression. We are only using this for function-available
* and element-available at this time.
1.29.2.1 +5 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Predicate.java
Index: Predicate.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Predicate.java,v
retrieving revision 1.29
retrieving revision 1.29.2.1
diff -u -r1.29 -r1.29.2.1
--- Predicate.java 22 Jul 2003 16:22:39 -0000 1.29
+++ Predicate.java 15 Oct 2003 21:03:50 -0000 1.29.2.1
@@ -260,9 +260,12 @@
}
SyntaxTreeNode parent = getParent();
-
+
// Expand [last()] into [position() = last()]
if ((_exp instanceof LastCall) ||
+ //Fix for bug 22949, check for last() for any expression
returns
+ // NumberType
+ _exp.hasLastCall()||
(parent instanceof Pattern) ||
(parent instanceof FilterExpr)) {
1.16.6.1 +8 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RelationalExpr.java
Index: RelationalExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RelationalExpr.java,v
retrieving revision 1.16
retrieving revision 1.16.6.1
diff -u -r1.16 -r1.16.6.1
--- RelationalExpr.java 30 Jan 2003 18:46:01 -0000 1.16
+++ RelationalExpr.java 15 Oct 2003 21:03:50 -0000 1.16.6.1
@@ -109,6 +109,13 @@
return false;
}
+ /**
+ * Returns true if this expressions contains a call to last()
+ */
+ public boolean hasLastCall() {
+ return (_left.hasLastCall() || _right.hasLastCall());
+ }
+
public boolean hasReferenceArgs() {
return _left.getType() instanceof ReferenceType ||
_right.getType() instanceof ReferenceType;
1.9.6.1 +8 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BinOpExpr.java
Index: BinOpExpr.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BinOpExpr.java,v
retrieving revision 1.9
retrieving revision 1.9.6.1
diff -u -r1.9 -r1.9.6.1
--- BinOpExpr.java 30 Jan 2003 18:45:59 -0000 1.9
+++ BinOpExpr.java 15 Oct 2003 21:03:50 -0000 1.9.6.1
@@ -101,6 +101,13 @@
return false;
}
+ /**
+ * Returns true if this expressions contains a call to last()
+ */
+ public boolean hasLastCall() {
+ return (_left.hasLastCall() || _right.hasLastCall());
+ }
+
public void setParser(Parser parser) {
super.setParser(parser);
_left.setParser(parser);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]