mkwan 2003/02/20 08:44:35
Modified: java/src/org/apache/xml/dtm/ref/sax2dtm Tag: XSLTC_DTM
SAX2DTM2.java
Log:
XSLTC_DTM performance work
Do not use the expensive getPrefix() interface in SAX2DTM2.startElement().
Just compare the lengths of the qname and localName. If the lengths are
different, put the qname into the string pool.
Revision Changes Path
No revision
No revision
1.1.2.16 +9 -2
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.15
retrieving revision 1.1.2.16
diff -u -r1.1.2.15 -r1.1.2.16
--- SAX2DTM2.java 19 Feb 2003 18:15:50 -0000 1.1.2.15
+++ SAX2DTM2.java 20 Feb 2003 16:44:35 -0000 1.1.2.16
@@ -1930,8 +1930,8 @@
charactersFlush();
int exName = m_expandedNameTable.getExpandedTypeID(uri, localName,
DTM.ELEMENT_NODE);
- String prefix = getPrefix(qName, uri);
- int prefixIndex = (null != prefix)
+
+ int prefixIndex = (qName.length() != localName.length())
? m_valuesOrPrefixes.stringToIndex(qName) : 0;
int elemNode = addNode(DTM.ELEMENT_NODE, exName,
@@ -1946,6 +1946,7 @@
int startDecls = m_contextIndexes.peek();
int nDecls = m_prefixMappings.size();
int prev = DTM.NULL;
+ String prefix;
if(!m_pastFirstElement)
{
@@ -2519,6 +2520,9 @@
{
int qnameIndex = m_dataOrQName.elementAt(nodeID);
+ if (qnameIndex == 0)
+ return extType.getLocalName();
+
if (qnameIndex < 0)
{
qnameIndex = -qnameIndex;
@@ -2576,6 +2580,9 @@
{
int qnameIndex = m_dataOrQName.elementAt(nodeID);
+ if (qnameIndex == 0)
+ return extType.getLocalName();
+
if (qnameIndex < 0)
{
qnameIndex = -qnameIndex;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]