[#65] object: Fix SetMarshalData for PutSingle request
Allow to reset marshal data Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com> Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
12567d76a8
commit
1d14f675df
2 changed files with 7 additions and 6 deletions
|
@ -1111,17 +1111,13 @@ func (r *PutSingleRequestBody) StableMarshal(buf []byte) []byte {
|
|||
|
||||
// SetMarshalData sets marshal data to reduce memory allocations.
|
||||
//
|
||||
// It is unsafe to modify request data after setting marshal data.
|
||||
// It is unsafe to modify/copy request data after setting marshal data.
|
||||
func (r *PutSingleRequestBody) SetMarshalData(data []byte) {
|
||||
if r == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if data == nil {
|
||||
r.marshalData = r.StableMarshal(nil)
|
||||
} else {
|
||||
r.marshalData = data
|
||||
}
|
||||
r.marshalData = data
|
||||
|
||||
proto.NestedStructureSetMarshalData(putSingleReqObjectField, r.marshalData, r.object)
|
||||
}
|
||||
|
|
|
@ -287,6 +287,11 @@ func NestedStructureSetMarshalData[T any, M setMarshalData[T]](field int64, pare
|
|||
return 0
|
||||
}
|
||||
|
||||
if parentData == nil {
|
||||
v.SetMarshalData(nil)
|
||||
return 0
|
||||
}
|
||||
|
||||
n := v.StableSize()
|
||||
buf := make([]byte, binary.MaxVarintLen64)
|
||||
prefix := protowire.EncodeTag(protowire.Number(field), protowire.BytesType)
|
||||
|
|
Loading…
Reference in a new issue