mkwan       2003/03/07 11:05:48

  Modified:    java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
                        AbstractTranslet.java
               java/src/org/apache/xalan/xsltc/runtime/output Tag:
                        XSLTC_DTM StreamOutput.java
  Log:
  XSLTC_DTM performance work
  Improvement in StreamOutput.escapeString(). Do not create the StringBuffer
  if there is nothing to escape.
  
  This change needs to be put back to the new serializer if it uses the same
  code.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.33.2.10 +4 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java
  
  Index: AbstractTranslet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java,v
  retrieving revision 1.33.2.9
  retrieving revision 1.33.2.10
  diff -u -r1.33.2.9 -r1.33.2.10
  --- AbstractTranslet.java     3 Mar 2003 15:51:41 -0000       1.33.2.9
  +++ AbstractTranslet.java     7 Mar 2003 19:05:48 -0000       1.33.2.10
  @@ -545,8 +545,9 @@
        throws TransletException {
           if (string != null)
           {
  -     final int length = string.length();
  -     handler.characters(string.toCharArray(), 0, length);
  +     //final int length = string.length();
  +     //handler.characters(string.toCharArray(), 0, length);
  +         handler.characters(string);
           }
       }
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.23.2.3  +25 -5     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/StreamOutput.java
  
  Index: StreamOutput.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/StreamOutput.java,v
  retrieving revision 1.23.2.2
  retrieving revision 1.23.2.3
  diff -u -r1.23.2.2 -r1.23.2.3
  --- StreamOutput.java 30 Jan 2003 18:41:49 -0000      1.23.2.2
  +++ StreamOutput.java 7 Mar 2003 19:05:48 -0000       1.23.2.3
  @@ -350,37 +350,57 @@
       protected String escapeString(String value) {
        final char[] ch = value.toCharArray();
        final int limit = ch.length;
  -     StringBuffer result = new StringBuffer();
  +     StringBuffer result = null;
        
        int offset = 0;
        for (int i = 0; i < limit; i++) {
            switch (ch[i]) {
            case '&':
  +             if (result == null) {
  +                 result = new StringBuffer();
  +             }               
                result.append(ch, offset, i - offset).append(AMP);
                offset = i + 1;
                break;
            case '"':
  +             if (result == null) {
  +                 result = new StringBuffer();
  +             }
                result.append(ch, offset, i - offset).append(QUOT);
                offset = i + 1;
                break;
            case '<':
  +             if (result == null) {
  +                 result = new StringBuffer();
  +             }
                result.append(ch, offset, i - offset).append(LT);
                offset = i + 1;
                break;
            case '>':
  +             if (result == null) {
  +                 result = new StringBuffer();
  +             }
                result.append(ch, offset, i - offset).append(GT);
                offset = i + 1;
                break;
            case '\n':
  +             if (result == null) {
  +                 result = new StringBuffer();
  +             }
                result.append(ch, offset, i - offset).append(CRLF);
                offset = i + 1;
                break;
            }
        }
   
  -     if (offset < limit) {
  -         result.append(ch, offset, limit - offset);
  +     if (result == null) {
  +         return value;
  +     }
  +     else {
  +         if (offset < limit) {
  +             result.append(ch, offset, limit - offset);
  +         }
  +         return result.toString();
        }
  -     return result.toString();
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to