You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2004/03/09 00:46:37 UTC
cvs commit: jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf ByteChunk.java CharChunk.java
remm 2004/03/08 15:46:37
Modified: util/java/org/apache/tomcat/util/buf ByteChunk.java
CharChunk.java
Log:
- The optimized write (direct writing when data appended is the size of the
buffer and the buffer is empty) works good when we would want to overflow
only when the data is actually bigger than the buffer.
- Add flag to allow disabling this.
Revision Changes Path
1.19 +6 -1 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/ByteChunk.java
Index: ByteChunk.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/ByteChunk.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ByteChunk.java 5 Mar 2004 13:06:13 -0000 1.18
+++ ByteChunk.java 8 Mar 2004 23:46:37 -0000 1.19
@@ -92,6 +92,7 @@
private ByteOutputChannel out = null;
private boolean isOutput=false;
+ private boolean optimizedWrite=true;
/**
* Creates a new, uninitialized ByteChunk object.
@@ -158,6 +159,10 @@
isSet=true;
}
+ public void setOptimizedWrite(boolean optimizedWrite) {
+ this.optimizedWrite = optimizedWrite;
+ }
+
public void setEncoding( String enc ) {
this.enc=enc;
}
@@ -285,7 +290,7 @@
// If the buffer is empty and the source is going to fill up all the
// space in buffer, may as well write it directly to the output,
// and avoid an extra copy
- if ( len == limit && end == start) {
+ if ( optimizedWrite && len == limit && end == start) {
out.realWriteBytes( src, off, len );
return;
}
1.13 +7 -1 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/CharChunk.java
Index: CharChunk.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/CharChunk.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- CharChunk.java 5 Mar 2004 13:08:00 -0000 1.12
+++ CharChunk.java 8 Mar 2004 23:46:37 -0000 1.13
@@ -72,6 +72,8 @@
private CharInputChannel in = null;
private CharOutputChannel out = null;
+ private boolean optimizedWrite=true;
+
/**
* Creates a new, uninitialized CharChunk object.
*/
@@ -126,6 +128,10 @@
}
+ public void setOptimizedWrite(boolean optimizedWrite) {
+ this.optimizedWrite = optimizedWrite;
+ }
+
public void setChars( char[] c, int off, int len ) {
recycle();
isSet=true;
@@ -251,7 +257,7 @@
// Optimize on a common case.
// If the source is going to fill up all the space in buffer, may
// as well write it directly to the output, and avoid an extra copy
- if ( len == limit && end == start) {
+ if ( optimizedWrite && len == limit && end == start) {
out.realWriteChars( src, off, len );
return;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org