Tiny optimization

This commit is contained in:
Trustin Lee 2013-06-13 12:15:41 +09:00
parent 96380e756c
commit 5131c024fa

View File

@ -280,15 +280,10 @@ public class NioSocketChannel extends AbstractNioByteChannel implements io.netty
long expectedWrittenBytes = 0;
for (int i = index; i < size; i++) {
ByteBuf buf = bufs.get(i);
if (!buf.isDirect()) {
int readableBytes = buf.readableBytes();
ByteBuf directBuf = alloc().directBuffer(readableBytes);
directBuf.writeBytes(buf, buf.readerIndex(), readableBytes);
buf.release();
bufs.set(i, directBuf);
buf = directBuf;
}
expectedWrittenBytes += readableBytes;
if (buf.isDirect()) {
int count = buf.nioBufferCount();
if (count == 1) {
if (nioBufferCnt == nioBuffers.length) {
@ -307,7 +302,16 @@ public class NioSocketChannel extends AbstractNioByteChannel implements io.netty
nioBuffers[nioBufferCnt ++] = nioBuf;
}
}
expectedWrittenBytes += buf.readableBytes();
} else {
ByteBuf directBuf = alloc().directBuffer(readableBytes);
directBuf.writeBytes(buf, buf.readerIndex(), readableBytes);
buf.release();
bufs.set(i, directBuf);
if (nioBufferCnt == nioBuffers.length) {
nioBuffers = doubleNioBufferArray(nioBuffers, nioBufferCnt);
}
nioBuffers[nioBufferCnt ++] = directBuf.nioBuffer();
}
}
long writtenBytes = 0;