From dd734cedd0aa286224dc396af37772e906fce331 Mon Sep 17 00:00:00 2001 From: VolodymyrBg Date: Tue, 1 Jul 2025 12:18:15 +0300 Subject: [PATCH] Use presence for all fields in codec_message_opaque --- .../internal/impl/codec_message_opaque.go | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go b/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go index 41c1f74ef..c91a59ac4 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go @@ -73,18 +73,11 @@ func (mi *MessageInfo) makeOpaqueCoderMethods(t reflect.Type, si opaqueStructInf presenceIndex: noPresence, } - // TODO: Use presence for all fields. - // - // In some cases, such as maps, presence means only "might be set" rather - // than "is definitely set", but every field should have a presence bit to - // permit us to skip over definitely-unset fields at marshal time. + // Presence is now used for all fields. + cf.presenceIndex, mi.presenceSize = presenceIndex(mi.Desc, fd) - var hasPresence bool - hasPresence, cf.isLazy = usePresenceForField(si, fd) - - if hasPresence { - cf.presenceIndex, mi.presenceSize = presenceIndex(mi.Desc, fd) - } + // isLazy is still determined as before + _, cf.isLazy = usePresenceForField(si, fd) mi.orderedCoderFields = append(mi.orderedCoderFields, cf) mi.coderFields[cf.num] = cf