mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2024-12-29 12:17:48 +00:00
4686e239b6
Move all checks for required fields into a proto.IsInitialized function. Initial testing makes me confident that we can provide a fast-path implementation of IsInitialized which will perform more than acceptably. (In the degenerate-but-common case where a message transitively contains no required fields, this check can be nearly zero cost.) Unifying checks into a single function provides consistent behavior between the wire, text, and json codecs. Performing the check after decoding eliminates the wire decoder bug where a split message is incorrectly seen as missing required fields. Performing the check after decoding also provides consistent and arguably more correct behavior when the target message was partially prepopulated. Change-Id: I9478b7bebb263af00c0d9f66a1f26e31ff553522 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/170787 Reviewed-by: Herbie Ong <herbie@google.com> |
||
---|---|---|
.. | ||
decode_gen.go | ||
decode_test.go | ||
decode.go | ||
encode_gen.go | ||
encode_test.go | ||
encode.go | ||
isinit_test.go | ||
isinit.go | ||
proto.go | ||
size_gen.go | ||
size.go |