santiagopg 2004/01/13 08:03:10
Modified: java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java
Log:
Fix for Bugzilla 25924 by Bhakti Mehta ([EMAIL PROTECTED]). Variable
_lastNext must be preserved in setMark() and restored in gotoMark().
Revision Changes Path
1.12 +10 -3
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DupFilterIterator.java
Index: DupFilterIterator.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DupFilterIterator.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- DupFilterIterator.java 1 Apr 2003 21:39:16 -0000 1.11
+++ DupFilterIterator.java 13 Jan 2004 16:03:10 -0000 1.12
@@ -100,6 +100,11 @@
*/
private int _lastNext = END;
+ /**
+ * Temporary variable to store _lastNext.
+ */
+ private int _markedLastNext = END;
+
public DupFilterIterator(DTMAxisIterator source) {
_source = source;
// System.out.println("DFI source = " + source + " this = " + this);
@@ -111,6 +116,7 @@
setStartNode(DTMDefaultBase.ROOTNODE);
}
}
+
/**
* Set the start node for this iterator
* @param node The start node
@@ -142,7 +148,6 @@
return this;
}
-
public int next() {
while (_current < _nodesSize) {
final int next = _nodes.at(_current++);
@@ -173,13 +178,15 @@
_isRestartable = isRestartable;
_source.setRestartable(isRestartable);
}
-
+
public void setMark() {
_markedNode = _current;
+ _markedLastNext = _lastNext; // Bugzilla 25924
}
public void gotoMark() {
_current = _markedNode;
+ _lastNext = _markedLastNext; // Bugzilla 25924
}
public DTMAxisIterator reset() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]