Touch a ReferenceCounted while it traverses across a pipeline
This commit is contained in:
parent
b887e35ac2
commit
65ebecb85f
@ -19,6 +19,7 @@ import io.netty.buffer.ByteBufAllocator;
|
|||||||
import io.netty.channel.ChannelHandler.Skip;
|
import io.netty.channel.ChannelHandler.Skip;
|
||||||
import io.netty.util.Attribute;
|
import io.netty.util.Attribute;
|
||||||
import io.netty.util.AttributeKey;
|
import io.netty.util.AttributeKey;
|
||||||
|
import io.netty.util.ReferenceCountUtil;
|
||||||
import io.netty.util.concurrent.EventExecutor;
|
import io.netty.util.concurrent.EventExecutor;
|
||||||
import io.netty.util.internal.PlatformDependent;
|
import io.netty.util.internal.PlatformDependent;
|
||||||
|
|
||||||
@ -322,6 +323,7 @@ final class DefaultChannelHandlerContext implements ChannelHandlerContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChannelHandlerContext fireChannelRead(Object msg) {
|
public ChannelHandlerContext fireChannelRead(Object msg) {
|
||||||
|
ReferenceCountUtil.touch(msg);
|
||||||
DefaultChannelHandlerContext next = findContextInbound(MASK_CHANNEL_READ);
|
DefaultChannelHandlerContext next = findContextInbound(MASK_CHANNEL_READ);
|
||||||
next.invoker.invokeChannelRead(next, msg);
|
next.invoker.invokeChannelRead(next, msg);
|
||||||
return this;
|
return this;
|
||||||
@ -417,6 +419,7 @@ final class DefaultChannelHandlerContext implements ChannelHandlerContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChannelFuture write(Object msg, ChannelPromise promise) {
|
public ChannelFuture write(Object msg, ChannelPromise promise) {
|
||||||
|
ReferenceCountUtil.touch(msg);
|
||||||
DefaultChannelHandlerContext next = findContextOutbound(MASK_WRITE);
|
DefaultChannelHandlerContext next = findContextOutbound(MASK_WRITE);
|
||||||
next.invoker.invokeWrite(next, msg, promise);
|
next.invoker.invokeWrite(next, msg, promise);
|
||||||
return promise;
|
return promise;
|
||||||
@ -431,6 +434,7 @@ final class DefaultChannelHandlerContext implements ChannelHandlerContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) {
|
public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) {
|
||||||
|
ReferenceCountUtil.touch(msg);
|
||||||
DefaultChannelHandlerContext next;
|
DefaultChannelHandlerContext next;
|
||||||
next = findContextOutbound(MASK_WRITE);
|
next = findContextOutbound(MASK_WRITE);
|
||||||
next.invoker.invokeWrite(next, msg, promise);
|
next.invoker.invokeWrite(next, msg, promise);
|
||||||
|
Loading…
Reference in New Issue
Block a user