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]