mkwan 2003/02/26 10:03:26
Modified: java/src/org/apache/xml/dtm/ref/sax2dtm Tag: XSLTC_DTM
SAX2DTM2.java
Log:
XSLTC_DTM performance work
Set the nextsib element of an attribute or namespace node to -1.
This makes the logic in the iterators simpler and easier to
maintain.
Revision Changes Path
No revision
No revision
1.1.2.19 +16 -39
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm/Attic/SAX2DTM2.java
Index: SAX2DTM2.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm/Attic/SAX2DTM2.java,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -u -r1.1.2.18 -r1.1.2.19
--- SAX2DTM2.java 26 Feb 2003 15:48:08 -0000 1.1.2.18
+++ SAX2DTM2.java 26 Feb 2003 18:03:25 -0000 1.1.2.19
@@ -290,7 +290,7 @@
final int nodeType = _nodeType;
- if (nodeType >= DTM.NTYPES) {
+ if (nodeType != DTM.ELEMENT_NODE) {
/*
while (node != DTM.NULL && _exptype2(node) != nodeType) {
node = _nextsib2(node);
@@ -303,7 +303,7 @@
// an element can be either an element, text, comment or
// processing instruction node. Only element node has an extended
// type greater than or equal to DTM.NTYPES.
- else if (nodeType == DTM.ELEMENT_NODE) {
+ else {
int eType;
while (node != DTM.NULL) {
eType = _exptype2(node);
@@ -313,20 +313,6 @@
node = _nextsib2(node);
}
}
- else {
- int eType;
- while (node != DTM.NULL) {
- eType = _exptype2(node);
- if (eType < DTM.NTYPES) {
- if (eType == nodeType) {
- break;
- }
- } else if (m_extendedTypes[eType].getNodeType() == nodeType) {
- break;
- }
- node = _nextsib2(node);
- }
- }
if (node == DTM.NULL) {
_currentNode = DTM.NULL;
@@ -475,24 +461,13 @@
int node = _currentNode;
final int nodeType = _nodeType;
- if (nodeType >= DTM.NTYPES) {
+ if (nodeType != DTM.ELEMENT_NODE) {
node = getTypedFollowingSibling(node, nodeType);
- }
+ }
else {
- int eType;
- while ((node = _nextsib2(node)) != DTM.NULL) {
- eType = _exptype2(node);
- if (eType < DTM.NTYPES) {
- if (eType == nodeType) {
- break;
- }
- }
- else if (m_extendedTypes[eType].getNodeType() == nodeType) {
- break;
- }
- }
+ while ((node = _nextsib2(node)) != DTM.NULL && _exptype2(node) <
DTM.NTYPES) {}
}
-
+
_currentNode = node;
return (node == DTM.NULL)
@@ -1971,7 +1946,7 @@
int startDecls = m_contextIndexes.peek();
int nDecls = m_prefixMappings.size();
- int prev = DTM.NULL;
+ //int prev = DTM.NULL;
String prefix;
if(!m_pastFirstElement)
@@ -1981,8 +1956,8 @@
String declURL = "http://www.w3.org/XML/1998/namespace";
exName = m_expandedNameTable.getExpandedTypeID(null, prefix,
DTM.NAMESPACE_NODE);
int val = m_valuesOrPrefixes.stringToIndex(declURL);
- prev = addNode(DTM.NAMESPACE_NODE, exName, elemNode,
- prev, val, false);
+ addNode(DTM.NAMESPACE_NODE, exName, elemNode,
+ DTM.NULL, val, false);
m_pastFirstElement=true;
}
@@ -1999,8 +1974,8 @@
int val = m_valuesOrPrefixes.stringToIndex(declURL);
- prev = addNode(DTM.NAMESPACE_NODE, exName, elemNode,
- prev, val, false);
+ addNode(DTM.NAMESPACE_NODE, exName, elemNode,
+ DTM.NULL, val, false);
}
int n = attributes.getLength();
@@ -2056,12 +2031,14 @@
}
exName = m_expandedNameTable.getExpandedTypeID(attrUri, attrLocalName,
nodeType);
- prev = addNode(nodeType, exName, elemNode, prev, val,
+ addNode(nodeType, exName, elemNode, DTM.NULL, val,
false);
}
+ /*
if (DTM.NULL != prev)
m_nextsib.setElementAt(DTM.NULL,prev);
+ */
if (null != m_wsfilter)
{
@@ -2233,8 +2210,8 @@
addNewDTMID(nodeIndex);
}
- m_firstch.addElement(canHaveFirstChild ? NOTPROCESSED : DTM.NULL);
- m_nextsib.addElement(NOTPROCESSED);
+ m_firstch.addElement(DTM.NULL);
+ m_nextsib.addElement(DTM.NULL);
m_prevsib.addElement(previousSibling);
m_parent.addElement(parentIndex);
m_exptype.addElement(expandedTypeID);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]