minchau 2003/06/09 14:50:56
Modified: java/src/org/apache/xml/serializer ToHTMLStream.java
ToXMLStream.java ToStream.java
Log:
Changed references to m_writer to a local writer variable in
a number of places (a minor performance improvement).
Submitted by: Brian Minchau
Revision Changes Path
1.14 +99 -92
xml-xalan/java/src/org/apache/xml/serializer/ToHTMLStream.java
Index: ToHTMLStream.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/serializer/ToHTMLStream.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- ToHTMLStream.java 9 Jun 2003 20:15:17 -0000 1.13
+++ ToHTMLStream.java 9 Jun 2003 21:50:56 -0000 1.14
@@ -632,29 +632,30 @@
String doctypePublic = getDoctypePublic();
if ((null != doctypeSystem) || (null != doctypePublic))
{
+ final java.io.Writer writer = m_writer;
try
{
- m_writer.write("<!DOCTYPE HTML");
+ writer.write("<!DOCTYPE HTML");
if (null != doctypePublic)
{
- m_writer.write(" PUBLIC \"");
- m_writer.write(doctypePublic);
- m_writer.write('"');
+ writer.write(" PUBLIC \"");
+ writer.write(doctypePublic);
+ writer.write('"');
}
if (null != doctypeSystem)
{
if (null == doctypePublic)
- m_writer.write(" SYSTEM \"");
+ writer.write(" SYSTEM \"");
else
- m_writer.write('"');
+ writer.write('"');
- m_writer.write(doctypeSystem);
- m_writer.write('"');
+ writer.write(doctypeSystem);
+ writer.write('"');
}
- m_writer.write('>');
+ writer.write('>');
outputLineSep();
}
catch(IOException e)
@@ -776,8 +777,9 @@
m_startTagOpen = true;
m_elementDesc = elemDesc;
m_isprevtext = false;
- m_writer.write('<');
- m_writer.write(name);
+ final java.io.Writer writer = m_writer;
+ writer.write('<');
+ writer.write(name);
// OPTIMIZE-EMPTY
@@ -816,12 +818,12 @@
{
if (m_doIndent)
indent();
- m_writer.write(
+ writer.write(
"<META http-equiv=\"Content-Type\"
content=\"text/html; charset=");
String encoding = getEncoding();
String encode = Encodings.getMimeEncoding(encoding);
- m_writer.write(encode);
- m_writer.write("\">");
+ writer.write(encode);
+ writer.write("\">");
}
}
}
@@ -886,11 +888,12 @@
m_inBlockElem = !isBlockElement;
}
+ final java.io.Writer writer = m_writer;
if (!m_startTagOpen)
{
- m_writer.write("</");
- m_writer.write(name);
- m_writer.write('>');
+ writer.write("</");
+ writer.write(name);
+ writer.write('>');
}
else
{
@@ -908,16 +911,16 @@
{
// As per Dave/Paul recommendation 12/06/2000
// if (shouldIndent)
- // m_writer.write('>');
+ // writer.write('>');
// indent(m_currentIndent);
- m_writer.write("></");
- m_writer.write(name);
- m_writer.write('>');
+ writer.write("></");
+ writer.write(name);
+ writer.write('>');
}
else
{
- m_writer.write('>');
+ writer.write('>');
}
/* no need to call m_cdataSectionStates.pop();
@@ -989,27 +992,28 @@
throws IOException
{
- m_writer.write(' ');
+ final java.io.Writer writer = m_writer;
+ writer.write(' ');
if ( ((value.length() == 0) || value.equalsIgnoreCase(name))
&& elemDesc != null
&& elemDesc.isAttrFlagSet(name, ElemDesc.ATTREMPTY))
{
- m_writer.write(name);
+ writer.write(name);
}
else
{
// %REVIEW% %OPT%
// Two calls to single-char write may NOT
// be more efficient than one to string-write...
- m_writer.write(name);
- m_writer.write("=\"");
+ writer.write(name);
+ writer.write("=\"");
if ( elemDesc != null
&& elemDesc.isAttrFlagSet(name, ElemDesc.ATTRURL))
- writeAttrURI(value, m_specialEscapeURLs);
+ writeAttrURI(writer, value, m_specialEscapeURLs);
else
- writeAttrString(value, this.getEncoding());
- m_writer.write('"');
+ writeAttrString(writer, value, this.getEncoding());
+ writer.write('"');
}
}
@@ -1071,7 +1075,8 @@
*
* @throws org.xml.sax.SAXException if a bad surrogate pair is detected.
*/
- public void writeAttrURI(String string, boolean doURLEscaping)
+ public void writeAttrURI(
+ final java.io.Writer writer, String string, boolean doURLEscaping)
throws IOException
{
// http://www.ietf.org/rfc/rfc2396.txt says:
@@ -1104,7 +1109,7 @@
{
if (cleanLength > 0)
{
- m_writer.write(chars, cleanStart, cleanLength);
+ writer.write(chars, cleanStart, cleanLength);
cleanLength = 0;
}
if (doURLEscaping)
@@ -1116,13 +1121,13 @@
// Note that Kay doesn't escape 0x20...
// if(ch == 0x20) // Not sure about this... -sb
// {
- // m_writer.write(ch);
+ // writer.write(ch);
// }
// else
if (ch <= 0x7F)
{
- m_writer.write('%');
- m_writer.write(makeHHString(ch));
+ writer.write('%');
+ writer.write(makeHHString(ch));
}
else if (ch <= 0x7FF)
{
@@ -1131,10 +1136,10 @@
int high = (ch >> 6) | 0xC0;
int low = (ch & 0x3F) | 0x80;
// First 6 bits, + high bit
- m_writer.write('%');
- m_writer.write(makeHHString(high));
- m_writer.write('%');
- m_writer.write(makeHHString(low));
+ writer.write('%');
+ writer.write(makeHHString(high));
+ writer.write('%');
+ writer.write(makeHHString(low));
}
else if (isUTF16Surrogate(ch)) // high surrogate
{
@@ -1179,14 +1184,14 @@
int byte3 = 0x80 | yyyyyy;
int byte4 = 0x80 | xxxxxx;
- m_writer.write('%');
- m_writer.write(makeHHString(byte1));
- m_writer.write('%');
- m_writer.write(makeHHString(byte2));
- m_writer.write('%');
- m_writer.write(makeHHString(byte3));
- m_writer.write('%');
- m_writer.write(makeHHString(byte4));
+ writer.write('%');
+ writer.write(makeHHString(byte1));
+ writer.write('%');
+ writer.write(makeHHString(byte2));
+ writer.write('%');
+ writer.write(makeHHString(byte3));
+ writer.write('%');
+ writer.write(makeHHString(byte4));
}
else
{
@@ -1195,24 +1200,24 @@
// middle 6 bits
int low = (ch & 0x3F) | 0x80;
// First 6 bits, + high bit
- m_writer.write('%');
- m_writer.write(makeHHString(high));
- m_writer.write('%');
- m_writer.write(makeHHString(middle));
- m_writer.write('%');
- m_writer.write(makeHHString(low));
+ writer.write('%');
+ writer.write(makeHHString(high));
+ writer.write('%');
+ writer.write(makeHHString(middle));
+ writer.write('%');
+ writer.write(makeHHString(low));
}
}
else if (escapingNotNeeded(ch))
{
- m_writer.write(ch);
+ writer.write(ch);
}
else
{
- m_writer.write("&#");
- m_writer.write(Integer.toString(ch));
- m_writer.write(';');
+ writer.write("&#");
+ writer.write(Integer.toString(ch));
+ writer.write(';');
}
// In this character range we have first written out any
previously accumulated
// "clean" characters, then processed the current more
complicated character,
@@ -1237,16 +1242,16 @@
if (cleanLength > 0)
{
- m_writer.write(chars, cleanStart, cleanLength);
+ writer.write(chars, cleanStart, cleanLength);
cleanLength = 0;
}
// Mike Kay encodes this as ", so he may know something
I don't?
if (doURLEscaping)
- m_writer.write("%22");
+ writer.write("%22");
else
- m_writer.write("""); // we have to escape this, I
guess.
+ writer.write("""); // we have to escape this, I
guess.
// We have written out any clean characters, then the
escaped '%' and now we
// We now we reset the next possible clean character.
@@ -1268,15 +1273,15 @@
// otherwise write out the clean chars at the end of the
// array
if (cleanStart == 0)
- m_writer.write(string);
+ writer.write(string);
else
- m_writer.write(chars, cleanStart, cleanLength);
+ writer.write(chars, cleanStart, cleanLength);
}
else if (cleanLength == 1)
{
// a little optimization for 1 clean character
// (we could have let the previous if(...) handle them all)
- m_writer.write(ch);
+ writer.write(ch);
}
}
@@ -1289,10 +1294,11 @@
*
* @throws org.xml.sax.SAXException
*/
- public void writeAttrString(String string, String encoding)
+ public void writeAttrString(
+ final java.io.Writer writer, String string, String encoding)
throws IOException
{
-
+
final char chars[] = string.toCharArray();
final int end = chars.length;
@@ -1325,10 +1331,10 @@
{
if (cleanLength > 0)
{
- m_writer.write(chars,cleanStart,cleanLength);
+ writer.write(chars,cleanStart,cleanLength);
cleanLength = 0;
}
- int pos = accumDefaultEntity(m_writer, ch, i, chars, end,
false);
+ int pos = accumDefaultEntity(writer, ch, i, chars, end,
false);
if (i != pos)
{
@@ -1350,27 +1356,26 @@
else if ((ch < m_maxCharacter) && (m_maxCharacter ==
0xFFFF)
&& (ch != 160))
{
- m_writer.write(ch); // no escaping in this case
+ writer.write(ch); // no escaping in this case
}
else
*/
String entityName = m_charInfo.getEntityNameForChar(ch);
-
if (null != entityName)
{
- m_writer.write('&');
- m_writer.write(entityName);
- m_writer.write(';');
+ writer.write('&');
+ writer.write(entityName);
+ writer.write(';');
}
else if (escapingNotNeeded(ch))
{
- m_writer.write(ch); // no escaping in this case
+ writer.write(ch); // no escaping in this case
}
else
{
- m_writer.write("&#");
- m_writer.write(Integer.toString(ch));
- m_writer.write(';');
+ writer.write("&#");
+ writer.write(Integer.toString(ch));
+ writer.write(';');
}
}
cleanStart = i + 1;
@@ -1385,15 +1390,15 @@
// otherwise write out the clean chars at the end of the
// array
if (cleanStart == 0)
- m_writer.write(string);
+ writer.write(string);
else
- m_writer.write(chars, cleanStart, cleanLength);
+ writer.write(chars, cleanStart, cleanLength);
}
else if (cleanLength == 1)
{
// a little optimization for 1 clean character
// (we could have let the previous if(...) handle them all)
- m_writer.write(ch);
+ writer.write(ch);
}
}
@@ -1446,11 +1451,11 @@
// if (shouldIndent())
// indent();
- // m_writer.write("<![CDATA[");
- // m_writer.write(chars, start, length);
+ // writer.write("<![CDATA[");
+ // writer.write(chars, start, length);
writeNormalizedChars(chars, start, length, false);
- // m_writer.write("]]>");
+ // writer.write("]]>");
// time to generate characters event
if (m_tracer != null)
@@ -1522,7 +1527,7 @@
if (shouldIndent())
indent();
- // m_writer.write(ch, start, length);
+ // writer.write(ch, start, length);
writeNormalizedChars(ch, start, length, true);
}
catch (IOException ioe)
@@ -1584,16 +1589,17 @@
if (shouldIndent())
indent();
- //m_writer.write("<?" + target);
- m_writer.write("<?");
- m_writer.write(target);
+ final java.io.Writer writer = m_writer;
+ //writer.write("<?" + target);
+ writer.write("<?");
+ writer.write(target);
if (data.length() > 0 && !Character.isSpaceChar(data.charAt(0)))
- m_writer.write(' ');
+ writer.write(' ');
- //m_writer.write(data + ">"); // different from XML
- m_writer.write(data); // different from XML
- m_writer.write('>'); // different from XML
+ //writer.write(data + ">"); // different from XML
+ writer.write(data); // different from XML
+ writer.write('>'); // different from XML
// Always output a newline char if not inside of an
// element. The whitespace is not significant in that
@@ -1627,9 +1633,10 @@
try
{
- m_writer.write('&');
- m_writer.write(name);
- m_writer.write(';');
+ final java.io.Writer writer = m_writer;
+ writer.write('&');
+ writer.write(name);
+ writer.write(';');
} catch(IOException e)
{
1.5 +24 -21
xml-xalan/java/src/org/apache/xml/serializer/ToXMLStream.java
Index: ToXMLStream.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/serializer/ToXMLStream.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ToXMLStream.java 30 May 2003 07:08:43 -0000 1.4
+++ ToXMLStream.java 9 Jun 2003 21:50:56 -0000 1.5
@@ -181,14 +181,15 @@
try
{
- m_writer.write("<?xml version=\"");
- m_writer.write(version);
- m_writer.write("\" encoding=\"");
- m_writer.write(encoding);
- m_writer.write('\"');
- m_writer.write(standalone);
- m_writer.write("?>");
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ final java.io.Writer writer = m_writer;
+ writer.write("<?xml version=\"");
+ writer.write(version);
+ writer.write("\" encoding=\"");
+ writer.write(encoding);
+ writer.write('\"');
+ writer.write(standalone);
+ writer.write("?>");
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
catch(IOException e)
{
@@ -303,12 +304,13 @@
if (shouldIndent())
indent();
- m_writer.write("<?");
- m_writer.write(target);
+ final java.io.Writer writer = m_writer;
+ writer.write("<?");
+ writer.write(target);
if (data.length() > 0
&& !Character.isSpaceChar(data.charAt(0)))
- m_writer.write(' ');
+ writer.write(' ');
int indexOfQLT = data.indexOf("?>");
@@ -318,29 +320,29 @@
// See XSLT spec on error recovery of "?>" in PIs.
if (indexOfQLT > 0)
{
- m_writer.write(data.substring(0, indexOfQLT));
+ writer.write(data.substring(0, indexOfQLT));
}
- m_writer.write("? >"); // add space between.
+ writer.write("? >"); // add space between.
if ((indexOfQLT + 2) < data.length())
{
- m_writer.write(data.substring(indexOfQLT + 2));
+ writer.write(data.substring(indexOfQLT + 2));
}
}
else
{
- m_writer.write(data);
+ writer.write(data);
}
- m_writer.write('?');
- m_writer.write('>');
+ writer.write('?');
+ writer.write('>');
// Always output a newline char if not inside of an
// element. The whitespace is not significant in that
// case.
if (m_currentElemDepth <= 0)
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write(m_lineSep, 0, m_lineSepLen);
m_startNewLine = true;
}
@@ -374,9 +376,10 @@
if (shouldIndent())
indent();
- m_writer.write('&');
- m_writer.write(name);
- m_writer.write(';');
+ final java.io.Writer writer = m_writer;
+ writer.write('&');
+ writer.write(name);
+ writer.write(';');
}
catch(IOException e)
{
1.11 +108 -99
xml-xalan/java/src/org/apache/xml/serializer/ToStream.java
Index: ToStream.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/serializer/ToStream.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ToStream.java 9 Jun 2003 20:15:17 -0000 1.10
+++ ToStream.java 9 Jun 2003 21:50:56 -0000 1.11
@@ -278,34 +278,34 @@
*/
protected final void flushWriter() throws org.xml.sax.SAXException
{
-
- if (null != m_writer)
+ final java.io.Writer writer = m_writer;
+ if (null != writer)
{
try
{
- if (m_writer instanceof WriterToUTF8Buffered)
+ if (writer instanceof WriterToUTF8Buffered)
{
if (m_shouldFlush)
- ((WriterToUTF8Buffered) m_writer).flush();
+ ((WriterToUTF8Buffered) writer).flush();
else
- ((WriterToUTF8Buffered) m_writer).flushBuffer();
+ ((WriterToUTF8Buffered) writer).flushBuffer();
}
- if (m_writer instanceof WriterToUTF8)
+ if (writer instanceof WriterToUTF8)
{
if (m_shouldFlush)
- m_writer.flush();
+ writer.flush();
}
- else if (m_writer instanceof WriterToASCI)
+ else if (writer instanceof WriterToASCI)
{
if (m_shouldFlush)
- m_writer.flush();
+ writer.flush();
}
else
{
// Flush always.
// Not a great thing if the writer was created
// by this class, but don't have a choice.
- m_writer.flush();
+ writer.flush();
}
}
catch (IOException ioe)
@@ -356,21 +356,21 @@
return;
try
{
-
+ final java.io.Writer writer = m_writer;
if (m_inDoctype)
{
- m_writer.write(" [");
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write(" [");
+ writer.write(m_lineSep, 0, m_lineSepLen);
m_inDoctype = false;
}
- m_writer.write("<!ELEMENT ");
- m_writer.write(name);
- m_writer.write(' ');
- m_writer.write(model);
- m_writer.write('>');
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write("<!ELEMENT ");
+ writer.write(name);
+ writer.write(' ');
+ writer.write(model);
+ writer.write('>');
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
catch (IOException e)
{
@@ -402,8 +402,9 @@
{
if (m_inDoctype)
{
- m_writer.write(" [");
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ final java.io.Writer writer = m_writer;
+ writer.write(" [");
+ writer.write(m_lineSep, 0, m_lineSepLen);
m_inDoctype = false;
}
@@ -427,13 +428,13 @@
*/
void outputEntityDecl(String name, String value) throws IOException
{
-
- m_writer.write("<!ENTITY ");
- m_writer.write(name);
- m_writer.write(" \"");
- m_writer.write(value);
- m_writer.write("\">");
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ final java.io.Writer writer = m_writer;
+ writer.write("<!ENTITY ");
+ writer.write(name);
+ writer.write(" \"");
+ writer.write(value);
+ writer.write("\">");
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
/**
@@ -773,10 +774,10 @@
*/
private void printSpace(int n) throws IOException
{
-
+ final java.io.Writer writer = m_writer;
for (int i = 0; i < n; i++)
{
- m_writer.write(' ');
+ writer.write(' ');
}
}
@@ -813,31 +814,32 @@
return;
try
{
+ final java.io.Writer writer = m_writer;
if (m_inDoctype)
{
- m_writer.write(" [");
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write(" [");
+ writer.write(m_lineSep, 0, m_lineSepLen);
m_inDoctype = false;
}
- m_writer.write("<!ATTLIST ");
- m_writer.write(eName);
- m_writer.write(' ');
-
- m_writer.write(aName);
- m_writer.write(' ');
- m_writer.write(type);
+ writer.write("<!ATTLIST ");
+ writer.write(eName);
+ writer.write(' ');
+
+ writer.write(aName);
+ writer.write(' ');
+ writer.write(type);
if (valueDefault != null)
{
- m_writer.write(' ');
- m_writer.write(valueDefault);
+ writer.write(' ');
+ writer.write(valueDefault);
}
- //m_writer.write(" ");
- //m_writer.write(value);
- m_writer.write('>');
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ //writer.write(" ");
+ //writer.write(value);
+ writer.write('>');
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
catch (IOException e)
{
@@ -973,12 +975,13 @@
i++;
- m_writer.write('&');
- m_writer.write('#');
-
- // m_writer.write('x');
- m_writer.write(Integer.toString(surrogateValue));
- m_writer.write(';');
+ final java.io.Writer writer = m_writer;
+ writer.write('&');
+ writer.write('#');
+
+ // writer.write('x');
+ writer.write(Integer.toString(surrogateValue));
+ writer.write(';');
return i;
}
@@ -1099,7 +1102,7 @@
boolean isCData)
throws IOException, org.xml.sax.SAXException
{
-
+ final java.io.Writer writer = m_writer;
int end = start + length;
for (int i = start; i < end; i++)
@@ -1108,7 +1111,7 @@
if (CharInfo.S_LINEFEED == c)
{
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
else if (isCData && (!escapingNotNeeded(c)))
{
@@ -1123,18 +1126,18 @@
}
else
{
- m_writer.write("&#");
+ writer.write("&#");
String intStr = Integer.toString((int) c);
- m_writer.write(intStr);
- m_writer.write(';');
+ writer.write(intStr);
+ writer.write(';');
}
// if ((i != 0) && (i < (end - 1)))
// if (!m_cdataTagOpen && (i < (end - 1)))
// {
- // m_writer.write(CDATA_DELIMITER_OPEN);
+ // writer.write(CDATA_DELIMITER_OPEN);
// m_cdataTagOpen = true;
// }
}
@@ -1145,7 +1148,7 @@
&& (']' == ch[i + 1])
&& ('>' == ch[i + 2])))
{
- m_writer.write(CDATA_CONTINUE);
+ writer.write(CDATA_CONTINUE);
i += 2;
}
@@ -1155,10 +1158,10 @@
{
if (isCData && !m_cdataTagOpen)
{
- m_writer.write(CDATA_DELIMITER_OPEN);
+ writer.write(CDATA_DELIMITER_OPEN);
m_cdataTagOpen = true;
}
- m_writer.write(c);
+ writer.write(c);
}
// This needs to go into a function...
@@ -1172,12 +1175,12 @@
{
if (m_cdataTagOpen)
closeCDATA();
- m_writer.write("&#");
+ writer.write("&#");
String intStr = Integer.toString((int) c);
- m_writer.write(intStr);
- m_writer.write(';');
+ writer.write(intStr);
+ writer.write(';');
}
}
}
@@ -1268,7 +1271,7 @@
m_cdataTagOpen = true;
}
- // m_writer.write(ch, start, length);
+ // writer.write(ch, start, length);
if (isEscapingDisabled())
{
charactersRaw(ch, start, length);
@@ -1586,7 +1589,7 @@
}
/**
- * Escape and m_writer.write a character.
+ * Escape and writer.write a character.
*
* @param ch character to be escaped.
* @param i index into character array.
@@ -1751,8 +1754,9 @@
m_startNewLine = true;
- m_writer.write('<');
- m_writer.write(name);
+ final java.io.Writer writer = m_writer;
+ writer.write('<');
+ writer.write(name);
}
catch (IOException e)
{
@@ -1821,35 +1825,36 @@
closeCDATA();
try
{
- m_writer.write("<!DOCTYPE ");
- m_writer.write(name);
+ final java.io.Writer writer = m_writer;
+ writer.write("<!DOCTYPE ");
+ writer.write(name);
String doctypePublic = getDoctypePublic();
if (null != doctypePublic)
{
- m_writer.write(" PUBLIC \"");
- m_writer.write(doctypePublic);
- m_writer.write('\"');
+ writer.write(" PUBLIC \"");
+ writer.write(doctypePublic);
+ writer.write('\"');
}
String doctypeSystem = getDoctypeSystem();
if (null != doctypeSystem)
{
if (null == doctypePublic)
- m_writer.write(" SYSTEM \"");
+ writer.write(" SYSTEM \"");
else
- m_writer.write(" \"");
+ writer.write(" \"");
- m_writer.write(doctypeSystem);
+ writer.write(doctypeSystem);
if (closeDecl)
{
- m_writer.write("\">");
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write("\">");
+ writer.write(m_lineSep, 0, m_lineSepLen);
closeDecl = false; // done closing
}
else
- m_writer.write('\"');
+ writer.write('\"');
}
boolean dothis = false;
if (dothis)
@@ -1858,8 +1863,8 @@
// but not anymore - bjm
if (closeDecl)
{
- m_writer.write('>');
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write('>');
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
}
}
@@ -1886,16 +1891,17 @@
*/
String encoding = getEncoding();
+ final java.io.Writer writer = m_writer;
for (int i = 0; i < nAttrs; i++)
{
// elementAt is JDK 1.1.8
final String name = m_attributes.getQName(i);
final String value = m_attributes.getValue(i);
- m_writer.write(' ');
- m_writer.write(name);
- m_writer.write("=\"");
+ writer.write(' ');
+ writer.write(name);
+ writer.write("=\"");
writeAttrString(m_writer, value, encoding);
- m_writer.write('\"');
+ writer.write('\"');
}
/* The attributes are now processed so clear them out
@@ -1977,6 +1983,7 @@
try
{
+ final java.io.Writer writer = m_writer;
if (m_startTagOpen)
{
if (m_tracer != null)
@@ -1985,9 +1992,9 @@
if (nAttrs > 0)
processAttributes(nAttrs);
if (m_spaceBeforeClose)
- m_writer.write(" />");
+ writer.write(" />");
else
- m_writer.write("/>");
+ writer.write("/>");
/* don't need to pop cdataSectionState because
* this element ended so quickly that we didn't get
* to push the state.
@@ -2001,10 +2008,10 @@
if (shouldIndent())
indent();
- m_writer.write('<');
- m_writer.write('/');
- m_writer.write(name);
- m_writer.write('>');
+ writer.write('<');
+ writer.write('/');
+ writer.write(name);
+ writer.write('>');
if (m_cdataSectionElements != null)
m_cdataSectionStates.pop();
}
@@ -2181,14 +2188,15 @@
boolean wasDash = false;
if (m_cdataTagOpen)
closeCDATA();
- m_writer.write(COMMENT_BEGIN);
+ final java.io.Writer writer = m_writer;
+ writer.write(COMMENT_BEGIN);
// Detect occurrences of two consecutive dashes, handle as
necessary.
for (int i = start; i < limit; i++)
{
if (wasDash && ch[i] == '-')
{
- m_writer.write(ch, start, i - start);
- m_writer.write(" -");
+ writer.write(ch, start, i - start);
+ writer.write(" -");
start = i + 1;
}
wasDash = (ch[i] == '-');
@@ -2200,12 +2208,12 @@
// Output the remaining characters (if any)
final int remainingChars = (limit - start);
if (remainingChars > 0)
- m_writer.write(ch, start, remainingChars);
+ writer.write(ch, start, remainingChars);
// Protect comment end from a single trailing dash
if (ch[limit - 1] == '-')
- m_writer.write(' ');
+ writer.write(' ');
}
- m_writer.write(COMMENT_END);
+ writer.write(COMMENT_END);
}
catch (IOException e)
{
@@ -2245,14 +2253,15 @@
outputDocTypeDecl(m_elementName, false);
m_needToOutputDocTypeDecl = false;
}
+ final java.io.Writer writer = m_writer;
if (!m_inDoctype)
- m_writer.write("]>");
+ writer.write("]>");
else
{
- m_writer.write('>');
+ writer.write('>');
}
- m_writer.write(m_lineSep, 0, m_lineSepLen);
+ writer.write(m_lineSep, 0, m_lineSepLen);
}
catch (IOException e)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]