You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mk...@apache.org on 2003/03/07 20:05:48 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java

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: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org