protoutil: prefer MarshalToSizedBuffer over MarshalTo where possible #105683
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit switches a number of callers of
protoutil.MarshalTo
over toprotoutil.MarshalToSizedBuffer
. The latter function is more strict in that it requires the the destination buffer to have a length of exactlypb.Size()
bytes, as opposed to only requiring it to have a capacity of at leastpb.Size()
bytes. In return, it avoids a call topb.Size()
.The three performance-sensitive callers that are changes here are:
roachpb.Value.SetProto
raftlog.EncodeCommand
storage.putBuffer.marshalMeta
The commit also adds some testing-only assertions to verify that callers are using the functions correctly.
Epic: None
Release note: None