Reset proto before unmarshalling (#1222)
This commit is contained in:
1
codec.go
1
codec.go
@ -96,6 +96,7 @@ func (p protoCodec) Marshal(v interface{}) ([]byte, error) {
|
|||||||
func (p protoCodec) Unmarshal(data []byte, v interface{}) error {
|
func (p protoCodec) Unmarshal(data []byte, v interface{}) error {
|
||||||
cb := protoBufferPool.Get().(*cachedProtoBuffer)
|
cb := protoBufferPool.Get().(*cachedProtoBuffer)
|
||||||
cb.SetBuf(data)
|
cb.SetBuf(data)
|
||||||
|
v.(proto.Message).Reset()
|
||||||
err := cb.Unmarshal(v.(proto.Message))
|
err := cb.Unmarshal(v.(proto.Message))
|
||||||
cb.SetBuf(nil)
|
cb.SetBuf(nil)
|
||||||
protoBufferPool.Put(cb)
|
protoBufferPool.Put(cb)
|
||||||
|
Reference in New Issue
Block a user