Improved performance of ProtobufDecoder using array directly when possible (Thanks Ian - iswett@yahoo.com)
This commit is contained in:
parent
21db320f0e
commit
4680cd0bb3
@ -97,13 +97,23 @@ public class ProtobufDecoder extends OneToOneDecoder {
|
||||
return msg;
|
||||
}
|
||||
|
||||
if (extensionRegistry == null) {
|
||||
return prototype.newBuilderForType().mergeFrom(
|
||||
new ChannelBufferInputStream((ChannelBuffer) msg)).build();
|
||||
ChannelBuffer buf = (ChannelBuffer) msg;
|
||||
if (buf.hasArray()) {
|
||||
if(extensionRegistry == null) {
|
||||
return prototype.newBuilderForType().mergeFrom(
|
||||
buf.array(),buf.arrayOffset(), buf.readableBytes()).build();
|
||||
} else {
|
||||
return prototype.newBuilderForType().mergeFrom(
|
||||
buf.array(), buf.arrayOffset(), buf.readableBytes(), extensionRegistry).build();
|
||||
}
|
||||
} else {
|
||||
return prototype.newBuilderForType().mergeFrom(
|
||||
new ChannelBufferInputStream((ChannelBuffer) msg),
|
||||
extensionRegistry).build();
|
||||
if (extensionRegistry == null) {
|
||||
return prototype.newBuilderForType().mergeFrom(
|
||||
new ChannelBufferInputStream((ChannelBuffer) msg)).build();
|
||||
} else {
|
||||
return prototype.newBuilderForType().mergeFrom(
|
||||
new ChannelBufferInputStream((ChannelBuffer) msg), extensionRegistry).build();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user