diff options
Diffstat (limited to 'vendor/google.golang.org/protobuf/proto')
| -rw-r--r-- | vendor/google.golang.org/protobuf/proto/size.go | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go index 554b9c6c0..f1692b49b 100644 --- a/vendor/google.golang.org/protobuf/proto/size.go +++ b/vendor/google.golang.org/protobuf/proto/size.go @@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore  }  func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { +	sizeTag := protowire.SizeTag(num) +  	if fd.IsPacked() && list.Len() > 0 {  		content := 0  		for i, llen := 0, list.Len(); i < llen; i++ {  			content += o.sizeSingular(num, fd.Kind(), list.Get(i))  		} -		return protowire.SizeTag(num) + protowire.SizeBytes(content) +		return sizeTag + protowire.SizeBytes(content)  	}  	for i, llen := 0, list.Len(); i < llen; i++ { -		size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) +		size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i))  	}  	return size  }  func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { +	sizeTag := protowire.SizeTag(num) +  	mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -		size += protowire.SizeTag(num) +		size += sizeTag  		size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value))  		return true  	}) | 
