internal/impl: centralize the logic for finding XXX fields
Change-Id: I177fbeeb474eeb86e4a47229ac5c48cb7191e95b
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/185140
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/impl/codec_message.go b/internal/impl/codec_message.go
index 204049d..2d5b376 100644
--- a/internal/impl/codec_message.go
+++ b/internal/impl/codec_message.go
@@ -35,20 +35,9 @@
}
func (mi *MessageInfo) makeMethods(t reflect.Type, si structInfo) {
- mi.sizecacheOffset = invalidOffset
- if fx, _ := t.FieldByName("XXX_sizecache"); fx.Type == sizecacheType {
- mi.sizecacheOffset = offsetOf(fx)
- }
- mi.unknownOffset = invalidOffset
- if fx, _ := t.FieldByName("XXX_unrecognized"); fx.Type == unknownFieldsType {
- mi.unknownOffset = offsetOf(fx)
- }
- mi.extensionOffset = invalidOffset
- if fx, _ := t.FieldByName("XXX_InternalExtensions"); fx.Type == extensionFieldsType {
- mi.extensionOffset = offsetOf(fx)
- } else if fx, _ = t.FieldByName("XXX_extensions"); fx.Type == extensionFieldsType {
- mi.extensionOffset = offsetOf(fx)
- }
+ mi.sizecacheOffset = si.sizecacheOffset
+ mi.unknownOffset = si.unknownOffset
+ mi.extensionOffset = si.extensionOffset
for i := 0; i < mi.PBType.Descriptor().Fields().Len(); i++ {
fd := mi.PBType.Descriptor().Fields().Get(i)