mmidy 01/07/17 11:18:06
Modified: java/src/org/apache/xalan/templates ElemNumber.java
java/src/org/apache/xalan/transformer Counter.java
CountersTable.java KeyRefIterator.java
java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
java/src/org/apache/xpath NodeSetDTM.java
java/src/org/apache/xpath/axes LocPathIterator.java
UnionPathIterator.java WalkingIteratorSorted.java
java/src/org/apache/xpath/objects XNodeSet.java
XRTreeFrag.java
Log:
Add new parameter to NodeSetDTM constructor. We need to have a DTMManager on
hand. Change code to use the new constructors.
Revision Changes Path
1.21 +1 -1
xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java
Index: ElemNumber.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ElemNumber.java 2001/06/15 05:13:54 1.20
+++ ElemNumber.java 2001/07/17 18:17:33 1.21
@@ -957,7 +957,7 @@
throws javax.xml.transform.TransformerException
{
- NodeSetDTM ancestors = new NodeSetDTM();
+ NodeSetDTM ancestors = new NodeSetDTM(xctxt.getDTMManager());
XPath countMatchPattern = getCountMatchPattern(xctxt, node);
DTM dtm = xctxt.getDTM(node);
1.10 +3 -3
xml-xalan/java/src/org/apache/xalan/transformer/Counter.java
Index: Counter.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/Counter.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Counter.java 2001/06/15 05:14:05 1.9
+++ Counter.java 2001/07/17 18:17:37 1.10
@@ -96,7 +96,7 @@
/**
* A vector of all nodes counted so far.
*/
- NodeSetDTM m_countNodes = new NodeSetDTM();
+ NodeSetDTM m_countNodes;
/**
* The node from where the counting starts. This is needed to
@@ -137,11 +137,11 @@
* @param numberElem The owning xsl:number element.
*
* @throws TransformerException
- */
+ *
Counter(ElemNumber numberElem) throws TransformerException
{
m_numberElem = numberElem;
- }
+ }*/
/**
* Try and find a node that was previously counted. If found,
1.9 +4 -2
xml-xalan/java/src/org/apache/xalan/transformer/CountersTable.java
Index: CountersTable.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/CountersTable.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- CountersTable.java 2001/06/15 05:14:06 1.8
+++ CountersTable.java 2001/07/17 18:17:38 1.9
@@ -123,7 +123,7 @@
/**
* Place to collect new counters.
*/
- transient private NodeSetDTM m_newFound = new NodeSetDTM();
+ transient private NodeSetDTM m_newFound;
/**
* Add a list of counted nodes that were built in backwards document
@@ -192,6 +192,8 @@
// of forward counting by one, this will mean a single node copy from
// the backwards list (m_newFound) to the forwards list
(counter.m_countNodes).
count = 0;
+ if (m_newFound == null)
+ m_newFound = new NodeSetDTM(support.getDTMManager());
for (; DTM.NULL != target;
target = numberElem.getPreviousNode(support, target))
@@ -230,7 +232,7 @@
// If we got to this point, then we didn't find a counter, so make
// one and add it to the list.
- Counter counter = new Counter(numberElem);
+ Counter counter = new Counter(numberElem, new
NodeSetDTM(support.getDTMManager()));
m_countersMade++; // for diagnostics
1.10 +2 -2
xml-xalan/java/src/org/apache/xalan/transformer/KeyRefIterator.java
Index: KeyRefIterator.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/KeyRefIterator.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- KeyRefIterator.java 2001/06/19 21:36:01 1.9
+++ KeyRefIterator.java 2001/07/17 18:17:39 1.10
@@ -115,12 +115,12 @@
public KeyRefIterator(XMLString ref, KeyIterator ki)
{
- super(ki.getPrefixResolver());
- setShouldCacheNodes(true);
+ super(ki.getPrefixResolver());
m_ki = ki;
m_name = ki.getName();
m_lookupKey = ref;
this.m_execContext = ki.getXPathContext();
+ setShouldCacheNodes(true);
}
/**
1.13 +6 -15
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java
Index: DOM2DTM.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DOM2DTM.java 2001/07/13 20:19:10 1.12
+++ DOM2DTM.java 2001/07/17 18:17:45 1.13
@@ -636,27 +636,18 @@
*/
private int getHandleFromNode(Node node)
{
+ // %TBD% Will this ever be called with Nodes that haven't yet been built?
+ // Do we need to be prepared to call nextNode()?
if (null != node)
{
- int len = m_nodes.size();
- boolean isMore;
- int i = 0;
- do
- {
- for (; i < len; i++)
+ int len = m_nodes.size();
+ for (int i = 0; i < len; i++)
{
if (m_nodes.elementAt(i) == node)
- return i | m_dtmIdent;
+ return i | m_dtmIdent;
}
-
- isMore = nextNode();
-
- len = m_nodes.size();
-
- }
- while(isMore || i < len);
}
-
+
return DTM.NULL;
}
1.2 +16 -7 xml-xalan/java/src/org/apache/xpath/NodeSetDTM.java
Index: NodeSetDTM.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/NodeSetDTM.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NodeSetDTM.java 2001/06/15 05:15:19 1.1
+++ NodeSetDTM.java 2001/07/17 18:17:49 1.2
@@ -103,9 +103,10 @@
/**
* Create an empty nodelist.
*/
- public NodeSetDTM()
+ public NodeSetDTM(DTMManager dtmManager)
{
super();
+ m_manager = dtmManager;
}
/**
@@ -114,9 +115,10 @@
* @param blocksize Size of blocks to allocate
* @param dummy pass zero for right now...
*/
- public NodeSetDTM(int blocksize, int dummy)
+ public NodeSetDTM(int blocksize, int dummy, DTMManager dtmManager)
{
super(blocksize);
+ m_manager = dtmManager;
}
// %TBD%
@@ -144,6 +146,7 @@
{
super();
+ m_manager = nodelist.getDTMManager();
addNodes((DTMIterator) nodelist);
}
@@ -159,6 +162,7 @@
super();
+ m_manager = ni.getDTMManager();
addNodes(ni);
}
@@ -174,6 +178,7 @@
super();
Node node;
+ m_manager = xctxt.getDTMManager();
while (null != (node = iterator.nextNode()))
{
@@ -187,10 +192,11 @@
*
* @param node Single node to be added to the new set.
*/
- public NodeSetDTM(int node)
+ public NodeSetDTM(int node, DTMManager dtmManager)
{
super();
+ m_manager = dtmManager;
addNode(node);
}
@@ -351,10 +357,13 @@
*/
public DTM getDTM(int nodeHandle)
{
- // %TBD%
- return null;
+
+ return m_manager.getDTM(nodeHandle);
}
+ /* An instance of the DTMManager. */
+ DTMManager m_manager;
+
/**
* Get an instance of the DTMManager. Since a node
* iterator may be passed without a DTMManager, this allows the
@@ -364,8 +373,8 @@
*/
public DTMManager getDTMManager()
{
- // %TBD%
- return null;
+
+ return m_manager;
}
/**
1.30 +1 -1
xml-xalan/java/src/org/apache/xpath/axes/LocPathIterator.java
Index: LocPathIterator.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/axes/LocPathIterator.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- LocPathIterator.java 2001/06/24 21:54:49 1.29
+++ LocPathIterator.java 2001/07/17 18:17:53 1.30
@@ -419,7 +419,7 @@
{
if(null == m_cachedNodes)
{
- m_cachedNodes = new NodeSetDTM();
+ m_cachedNodes = new NodeSetDTM(getDTMManager());
}
}
else
1.22 +1 -1
xml-xalan/java/src/org/apache/xpath/axes/UnionPathIterator.java
Index: UnionPathIterator.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/axes/UnionPathIterator.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- UnionPathIterator.java 2001/06/24 21:54:49 1.21
+++ UnionPathIterator.java 2001/07/17 18:17:54 1.22
@@ -240,7 +240,7 @@
{
if (b)
- m_cachedNodes = new NodeSetDTM();
+ m_cachedNodes = new NodeSetDTM(getDTMManager());
else
m_cachedNodes = null;
}
1.4 +1 -1
xml-xalan/java/src/org/apache/xpath/axes/WalkingIteratorSorted.java
Index: WalkingIteratorSorted.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/axes/WalkingIteratorSorted.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WalkingIteratorSorted.java 2001/06/23 03:54:30 1.3
+++ WalkingIteratorSorted.java 2001/07/17 18:17:55 1.4
@@ -38,7 +38,7 @@
throws javax.xml.transform.TransformerException
{
super(compiler, opPos, analysis, shouldLoadWalkers);
- this.setShouldCacheNodes(true);
+ //this.setShouldCacheNodes(true);
}
/**
1.17 +2 -2 xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java
Index: XNodeSet.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- XNodeSet.java 2001/06/21 01:55:18 1.16
+++ XNodeSet.java 2001/07/17 18:18:01 1.17
@@ -104,7 +104,7 @@
*/
public XNodeSet(DTMManager dtmMgr)
{
- super(new NodeSetDTM());
+ super(new NodeSetDTM(dtmMgr));
m_dtmMgr = dtmMgr;
}
@@ -116,7 +116,7 @@
public XNodeSet(int n, DTMManager dtmMgr)
{
- super(new NodeSetDTM());
+ super(new NodeSetDTM(dtmMgr));
m_dtmMgr = dtmMgr;
if (DTM.NULL != n)
1.17 +1 -1
xml-xalan/java/src/org/apache/xpath/objects/XRTreeFrag.java
Index: XRTreeFrag.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XRTreeFrag.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- XRTreeFrag.java 2001/06/15 17:54:27 1.16
+++ XRTreeFrag.java 2001/07/17 18:18:02 1.17
@@ -116,7 +116,7 @@
*/
public Object object()
{
- return new org.apache.xml.dtm.ref.DTMNodeIterator((DTMIterator)(new
org.apache.xpath.NodeSetDTM(m_dtmRoot)));
+ return new org.apache.xml.dtm.ref.DTMNodeIterator((DTMIterator)(new
org.apache.xpath.NodeSetDTM(m_dtmRoot, m_xctxt.getDTMManager())));
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]