Author: violetagg Date: Fri Aug 26 09:10:46 2016 New Revision: 1757799 URL: http://svn.apache.org/viewvc?rev=1757799&view=rev Log: Introduce a new method SocketWrapperBase.addToBuffers(ByteBuffer)
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1757799&r1=1757798&r2=1757799&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Aug 26 09:10:46 2016 @@ -514,13 +514,25 @@ public abstract class SocketWrapperBase< protected void addToBuffers(byte[] buf, int offset, int length) { + ByteBufferHolder holder = getByteBufferHolder(length); + holder.getBuf().put(buf, offset, length); + } + + + protected void addToBuffers(ByteBuffer from) { + ByteBufferHolder holder = getByteBufferHolder(from.remaining()); + holder.getBuf().put(from); + } + + + private ByteBufferHolder getByteBufferHolder(int capacity) { ByteBufferHolder holder = bufferedWrites.peekLast(); - if (holder == null || holder.isFlipped() || holder.getBuf().remaining() < length) { - ByteBuffer buffer = ByteBuffer.allocate(Math.max(bufferedWriteSize, length)); + if (holder == null || holder.isFlipped() || holder.getBuf().remaining() < capacity) { + ByteBuffer buffer = ByteBuffer.allocate(Math.max(bufferedWriteSize, capacity)); holder = new ByteBufferHolder(buffer, false); bufferedWrites.add(holder); } - holder.getBuf().put(buf, offset, length); + return holder; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org