Преглед изворни кода

proto: use extension field type in decoding when available

If a field has an ExtensionType defined, use it in decoding.

Change-Id: I85f3da0f52a11578500cf28e4611fa4eb31f0623
Reviewed-on: https://go-review.googlesource.com/c/154581
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Damien Neil пре 7 година
родитељ
комит
d068d302ef
1 измењених фајлова са 3 додато и 0 уклоњено
  1. 3 0
      proto/decode.go

+ 3 - 0
proto/decode.go

@@ -48,6 +48,9 @@ func (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) err
 
 
 		// Parse the field value.
 		// Parse the field value.
 		fieldType := fieldTypes.ByNumber(num)
 		fieldType := fieldTypes.ByNumber(num)
+		if fieldType == nil {
+			fieldType = knownFields.ExtensionTypes().ByNumber(num)
+		}
 		var err error
 		var err error
 		var valLen int
 		var valLen int
 		switch {
 		switch {