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 &#34;, so he may know something 
I don't?
                   if (doURLEscaping)
  -                    m_writer.write("%22");
  +                    writer.write("%22");
                   else
  -                    m_writer.write("&quot;"); // we have to escape this, I 
guess.
  +                    writer.write("&quot;"); // 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]

Reply via email to