diff --git a/handler/src/main/java/io/netty/handler/ssl/OpenSsl.java b/handler/src/main/java/io/netty/handler/ssl/OpenSsl.java index 7869cb7791..1d934c11b2 100644 --- a/handler/src/main/java/io/netty/handler/ssl/OpenSsl.java +++ b/handler/src/main/java/io/netty/handler/ssl/OpenSsl.java @@ -555,7 +555,9 @@ public final class OpenSsl { static long memoryAddress(ByteBuf buf) { assert buf.isDirect(); - return buf.hasMemoryAddress() ? buf.memoryAddress() : Buffer.address(buf.nioBuffer()); + return buf.hasMemoryAddress() ? buf.memoryAddress() : + // Use internalNioBuffer to reduce object creation. + Buffer.address(buf.internalNioBuffer(0, buf.readableBytes())); } private OpenSsl() { }