From 947a12555a22f193b5bd8e7c3851fba368ece14a Mon Sep 17 00:00:00 2001 From: norman Date: Mon, 30 Jul 2012 14:28:28 +0200 Subject: [PATCH] Make the code more compact. See #480 --- .../nio/SocketReceiveBufferAllocator.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java b/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java index eb3eb08125..5e6041d2a1 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java @@ -38,24 +38,28 @@ final class SocketReceiveBufferAllocator { ByteBuffer get(int size) { if (buf == null) { - buf = ByteBuffer.allocateDirect(normalizeCapacity(size)); + buf = newBuffer(size); } else if (buf.capacity() < size) { + buf = newBuffer(size); + } else if (((buf.capacity() / 100) * percentual) > size) { + if (++exceedCount == maxExceedCount) { + buf = newBuffer(size); + } else { + buf.clear(); + } + } else { + exceedCount = 0; + buf.clear(); + } + return buf; + } + + private ByteBuffer newBuffer(int size) { + if (buf != null) { exceedCount = 0; ByteBufferUtil.destroy(buf); - buf = ByteBuffer.allocateDirect(normalizeCapacity(size)); - } else if (buf.capacity() > size) { - if (((buf.capacity() / 100) * percentual) > size) { - if (++exceedCount == maxExceedCount) { - exceedCount = 0; - ByteBufferUtil.destroy(buf); - buf = ByteBuffer.allocateDirect(normalizeCapacity(size)); - } - } else { - exceedCount = 0; - } } - buf.clear(); - return buf; + return ByteBuffer.allocateDirect(normalizeCapacity(size)); } private static int normalizeCapacity(int capacity) {