8000 Avoid generic class resolving when possible (#15302) · netty/netty@870a23d · GitHub
[go: up one dir, main page]

8000
Skip to content

Commit 870a23d

Browse files
authored
Avoid generic class resolving when possible (#15302)
Pass generic type class to a constructor, so that we can avoid reflection calls.
1 parent abc2310 commit 870a23d

File tree

68 files changed

+138
-16
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+138
-16
lines changed

codec-base/src/main/java/io/netty/handler/codec/ByteToMessageCodec.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ protected ByteToMessageCodec(boolean preferDirect) {
8686
protected ByteToMessageCodec(Class<? extends I> outboundMessageType, boolean preferDirect) {
8787
ensureNotSharable();
8888
outboundMsgMatcher = TypeParameterMatcher.get(outboundMessageType);
89-
encoder = new Encoder(preferDirect);
89+
encoder = new Encoder(preferDirect, outboundMessageType);
9090
}
9191

9292
/**
@@ -162,6 +162,10 @@ private final class Encoder extends MessageToByteEncoder<I> {
162162
super(preferDirect);
163163
}
164164

165+
Encoder(boolean preferDirect, Class<? extends I> outboundMessageType) {
166+
super(outboundMessageType, preferDirect);
167+
}
168+
165169
@Override
166170
public boolean acceptOutboundMessage(Object msg) throws Exception {
167171
return ByteToMessageCodec.this.acceptOutboundMessage(msg);

codec-base/src/main/java/io/netty/handler/codec/DatagramPacketDecoder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public class DatagramPacketDecoder extends MessageToMessageDecoder<DatagramPacke
4242
* @param decoder the specified {@link ByteBuf} decoder
4343
*/
4444
public DatagramPacketDecoder(MessageToMessageDecoder<ByteBuf> decoder) {
45+
super(DatagramPacket.class);
4546
this.decoder = checkNotNull(decoder, "decoder");
4647
}
4748

codec-base/src/main/java/io/netty/handler/codec/LengthFieldPrepender.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ public LengthFieldPrepender(int lengthFieldLength, int lengthAdjustment, boolean
143143
public LengthFieldPrepender(
144144
ByteOrder byteOrder, int lengthFieldLength,
145145
int lengthAdjustment, boolean lengthIncludesLengthFieldLength) {
146+
super(ByteBuf.class);
146147
if (lengthFieldLength != 1 && lengthFieldLength != 2 &&
147148
lengthFieldLength != 3 && lengthFieldLength != 4 &&
148149
lengthFieldLength != 8) {

codec-base/src/main/java/io/netty/handler/codec/MessageToMessageCodec.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
*/
5555
public abstract class MessageToMessageCodec<INBOUND_IN, OUTBOUND_IN> extends ChannelDuplexHandler {
5656

57-
private final MessageToMessageDecoder<Object> decoder = new MessageToMessageDecoder<Object>() {
57+
private final MessageToMessageDecoder<Object> decoder = new MessageToMessageDecoder<Object>(Object.class) {
5858

5959
@Override
6060
public boolean acceptInboundMessage(Object msg) throws Exception {
@@ -72,7 +72,7 @@ public boolean isSharable() {
7272
return MessageToMessageCodec.this.isSharable();
7373
}
7474
};
75-
private final MessageToMessageEncoder<Object> encoder = new MessageToMessageEncoder<Object>() {
75+
private final MessageToMessageEncoder<Object> encoder = new MessageToMessageEncoder<Object>(Object.class) {
7676

7777
@Override
7878
public boolean acceptOutboundMessage(Object msg) throws Exception {

codec-base/src/main/java/io/netty/handler/codec/base64/Base64Decoder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public Base64Decoder() {
5454
}
5555

5656
public Base64Decoder(Base64Dialect dialect) {
57+
super(ByteBuf.class);
5758
this.dialect = ObjectUtil.checkNotNull(dialect, "dialect");
5859
}
5960

codec-base/src/main/java/io/netty/handler/codec/base64/Base64Encoder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public Base64Encoder(boolean breakLines) {
5555
}
5656

5757
public Base64Encoder(boolean breakLines, Base64Dialect dialect) {
58+
super(ByteBuf.class);
5859
this.dialect = ObjectUtil.checkNotNull(dialect, "dialect");
5960
this.breakLines = breakLines;
6061
}

codec-base/src/main/java/io/netty/handler/codec/bytes/ByteArrayDecoder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@
5050
* </pre>
5151
*/
5252
public class ByteArrayDecoder extends MessageToMessageDecoder<ByteBuf> {
53+
public ByteArrayDecoder() {
54+
super(ByteBuf.class);
55+
}
56+
5357
@Override
5458
protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
5559
// copy the ByteBuf content to a byte array

codec-base/src/main/java/io/netty/handler/codec/bytes/ByteArrayEncoder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@
5252
*/
5353
@Sharable
5454
public class ByteArrayEncoder extends MessageToMessageEncoder<byte[]> {
55+
public ByteArrayEncoder() {
56+
super(byte[].class);
57+
}
58+
5559
@Override
5660
protected void encode(ChannelHandlerContext ctx, byte[] msg, List<Object> out) throws Exception {
5761
out.add(Unpooled.wrappedBuffer(msg));

codec-base/src/main/java/io/netty/handler/codec/serialization/CompatibleObjectEncoder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public CompatibleObjectEncoder() {
6666
* the long term.
6767
*/
6868
public CompatibleObjectEncoder(int resetInterval) {
69+
super(Serializable.class);
6970
this.resetInterval = checkPositiveOrZero(resetInterval, "resetInterval&q 9C5E uot;);
7071
}
7172

codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectEncoder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@
4848
public class ObjectEncoder extends MessageToByteEncoder<Serializable> {
4949
private static final byte[] LENGTH_PLACEHOLDER = new byte[4];
5050

51+
public ObjectEncoder() {
52+
super(Serializable.class);
53+
}
54+
5155
@Override
5256
protected void encode(ChannelHandlerContext ctx, Serializable msg, ByteBuf out) throws Exception {
5357
int startIdx = out.writerIndex();

0 commit comments

Comments
 (0)
0