You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/09/19 17:53:42 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/dom BitArray.java DupFilterIterator.java KeyIndex.java
morten 01/09/19 08:53:42
Modified: java/src/org/apache/xalan/xsltc/dom BitArray.java
DupFilterIterator.java KeyIndex.java
Log:
A fix in the duplicate filter iterator to ensure that the iterator can be
reset properly. The iterator was using its own variable for tracking the
current node (not the base class' _position variable) but did not
implement the reset() method).
PR: bugzilla 1430
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org
Revision Changes Path
1.2 +11 -2 xml-xalan/java/src/org/apache/xalan/xsltc/dom/BitArray.java
Index: BitArray.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/BitArray.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BitArray.java 2001/04/17 18:52:27 1.1
+++ BitArray.java 2001/09/19 15:53:42 1.2
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: BitArray.java,v 1.1 2001/04/17 18:52:27 sboag Exp $
+ * @(#)$Id: BitArray.java,v 1.2 2001/09/19 15:53:42 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -95,6 +95,13 @@
_bits = new int[_intSize + 1];
}
+ public BitArray(int size, int[] bits) {
+ if (size < 32) size = 32;
+ _bitSize = size;
+ _intSize = (_bitSize >>> 5) + 1;
+ _bits = bits;
+ }
+
/**
* Set the mask for this bit array. The upper 8 bits of this mask
* indicate the DOM in which the nodes in this array belong.
@@ -246,8 +253,10 @@
_bitSize = newSize;
}
}
-
+ public BitArray cloneArray() {
+ return(new BitArray(_intSize, _bits));
+ }
}
1.7 +6 -1 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DupFilterIterator.java 2001/08/28 13:23:30 1.6
+++ DupFilterIterator.java 2001/09/19 15:53:42 1.7
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: DupFilterIterator.java,v 1.6 2001/08/28 13:23:30 morten Exp $
+ * @(#)$Id: DupFilterIterator.java,v 1.7 2001/09/19 15:53:42 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -181,6 +181,11 @@
public void gotoMark() {
_source.gotoMark();
_current = _markedNode;
+ }
+
+ public NodeIterator reset() {
+ _current = 0;
+ return(this);
}
}
1.5 +10 -2 xml-xalan/java/src/org/apache/xalan/xsltc/dom/KeyIndex.java
Index: KeyIndex.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/KeyIndex.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- KeyIndex.java 2001/08/17 13:17:45 1.4
+++ KeyIndex.java 2001/09/19 15:53:42 1.5
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: KeyIndex.java,v 1.4 2001/08/17 13:17:45 morten Exp $
+ * @(#)$Id: KeyIndex.java,v 1.5 2001/09/19 15:53:42 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -259,7 +259,15 @@
* Returns a deep copy of this iterator.
*/
public NodeIterator cloneIterator() {
- return((NodeIterator)this);
+ KeyIndex other = new KeyIndex(_arraySize);
+
+ other._index = _index;
+ other._nodes = _nodes.cloneArray();
+ other._pos = _pos;
+ other._start = _start;
+ other._node = _node;
+
+ return(other);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org