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;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extensionRegistry == null) {
|
ChannelBuffer buf = (ChannelBuffer) msg;
|
||||||
return prototype.newBuilderForType().mergeFrom(
|
if (buf.hasArray()) {
|
||||||
new ChannelBufferInputStream((ChannelBuffer) msg)).build();
|
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 {
|
} else {
|
||||||
return prototype.newBuilderForType().mergeFrom(
|
if (extensionRegistry == null) {
|
||||||
new ChannelBufferInputStream((ChannelBuffer) msg),
|
return prototype.newBuilderForType().mergeFrom(
|
||||||
extensionRegistry).build();
|
new ChannelBufferInputStream((ChannelBuffer) msg)).build();
|
||||||
|
} else {
|
||||||
|
return prototype.newBuilderForType().mergeFrom(
|
||||||
|
new ChannelBufferInputStream((ChannelBuffer) msg), extensionRegistry).build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user