From 195739fcd6ecbaa44cb6732e8361f8d6872cf77f Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 16 May 2013 16:58:18 +1000 Subject: [PATCH] No memory leaks please --- CraftBukkit-Patches/0021-Netty.patch | 34 +++++++++++++++------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/CraftBukkit-Patches/0021-Netty.patch b/CraftBukkit-Patches/0021-Netty.patch index 5a7c166ecb..d2f1c7c668 100644 --- a/CraftBukkit-Patches/0021-Netty.patch +++ b/CraftBukkit-Patches/0021-Netty.patch @@ -1,4 +1,4 @@ -From 9894e4291db62707a35af91c43bd5016ad127786 Mon Sep 17 00:00:00 2001 +From a611df970f7c6f5ef3f2777f66ec528a3c1f2eaa Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 23 Apr 2013 11:47:32 +1000 Subject: [PATCH] Netty @@ -466,10 +466,10 @@ index 0000000..aa8192e +} diff --git a/src/main/java/org/spigotmc/netty/NettyNetworkManager.java b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java new file mode 100644 -index 0000000..97bf65e +index 0000000..af3ac6d --- /dev/null +++ b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java -@@ -0,0 +1,254 @@ +@@ -0,0 +1,259 @@ +package org.spigotmc.netty; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -562,6 +562,11 @@ index 0000000..97bf65e + } + + @Override ++ public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { ++ ctx.pipeline().get(PacketEncoder.class).dealloc(); ++ } ++ ++ @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + // TODO: Remove this once we are more stable + // Bukkit.getServer().getLogger().severe("======================= Start Netty Debug Log ======================="); @@ -1092,10 +1097,10 @@ index 0000000..7476074 +} diff --git a/src/main/java/org/spigotmc/netty/PacketDecoder.java b/src/main/java/org/spigotmc/netty/PacketDecoder.java new file mode 100644 -index 0000000..bc4fc98 +index 0000000..ba435da --- /dev/null +++ b/src/main/java/org/spigotmc/netty/PacketDecoder.java -@@ -0,0 +1,67 @@ +@@ -0,0 +1,61 @@ +package org.spigotmc.netty; + +import io.netty.buffer.ByteBuf; @@ -1156,19 +1161,13 @@ index 0000000..bc4fc98 + } + } + } -+ -+ @Override -+ public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { -+ input = null; -+ packet = null; -+ } +} diff --git a/src/main/java/org/spigotmc/netty/PacketEncoder.java b/src/main/java/org/spigotmc/netty/PacketEncoder.java new file mode 100644 -index 0000000..b9a73b8 +index 0000000..9798acd --- /dev/null +++ b/src/main/java/org/spigotmc/netty/PacketEncoder.java -@@ -0,0 +1,49 @@ +@@ -0,0 +1,52 @@ +package org.spigotmc.netty; + +import io.netty.buffer.ByteBuf; @@ -1209,13 +1208,16 @@ index 0000000..b9a73b8 + out.discardSomeReadBytes(); + } + -+ @Override -+ public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { ++ public void dealloc() { + if (outBuf != null) { + outBuf.release(); + outBuf = null; + } -+ dataOut = null; ++ } ++ ++ @Override ++ public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { ++ dealloc(); + } +} diff --git a/src/main/java/org/spigotmc/netty/PacketListener.java b/src/main/java/org/spigotmc/netty/PacketListener.java