You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@apache.org on 2001/01/07 05:20:51 UTC
cvs commit: xml-xalan/java/src/org/apache/xml/utils TreeWalker.java
sboag 01/01/06 20:20:51
Modified: java/src/org/apache/xml/utils TreeWalker.java
Log:
Take advantage of SaxEventDispatch#dispatchCharactersEvent,
instead of getting the string value and creating an array from it.
Revision Changes Path
1.5 +21 -7 xml-xalan/java/src/org/apache/xml/utils/TreeWalker.java
Index: TreeWalker.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/utils/TreeWalker.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TreeWalker.java 2000/12/31 09:28:07 1.4
+++ TreeWalker.java 2001/01/07 04:20:51 1.5
@@ -194,6 +194,23 @@
/** Flag indicating whether following text to be processed is raw text */
boolean nextIsRaw = false;
+
+ /**
+ * Optimized dispatch of characters.
+ */
+ private final void dispatachChars(Node node)
+ throws org.xml.sax.SAXException
+ {
+ if(node.isSupported(org.apache.xalan.stree.SaxEventDispatch.SUPPORTSINTERFACE, "1.0"))
+ {
+ ((org.apache.xalan.stree.SaxEventDispatch)node).dispatchCharactersEvent(m_contentHandler);
+ }
+ else
+ {
+ String data = ((Text) node).getData();
+ this.m_contentHandler.characters(data.toCharArray(), 0, data.length());
+ }
+ }
/**
* Start processing given node
@@ -288,7 +305,6 @@
break;
case Node.CDATA_SECTION_NODE :
{
- String data = ((Text) node).getData();
boolean isLexH = (m_contentHandler instanceof LexicalHandler);
LexicalHandler lh = isLexH
? ((LexicalHandler) this.m_contentHandler) : null;
@@ -297,8 +313,8 @@
{
lh.startCDATA();
}
-
- this.m_contentHandler.characters(data.toCharArray(), 0, data.length());
+
+ dispatachChars(node);
{
if (isLexH)
@@ -317,14 +333,12 @@
nextIsRaw = false;
m_contentHandler.processingInstruction(javax.xml.transform.Result.PI_DISABLE_OUTPUT_ESCAPING, "");
- m_contentHandler.characters(data.toCharArray(), 0,
- data.length());
+ dispatachChars(node);
m_contentHandler.processingInstruction(javax.xml.transform.Result.PI_ENABLE_OUTPUT_ESCAPING, "");
}
else
{
- this.m_contentHandler.characters(data.toCharArray(), 0,
- data.length());
+ dispatachChars(node);
}
}
break;