From a75c9146b72afd5b18b817fdfda7fb1d974db9c5 Mon Sep 17 00:00:00 2001 From: Joe Tsai Date: Wed, 1 Apr 2020 11:47:49 -0700 Subject: [PATCH] internal/impl: minor refactoring Change-Id: I1a5f4ca31fec72a39ba6690af06f4ae8576408cc Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/226897 Reviewed-by: Damien Neil --- internal/impl/api_export.go | 4 ++-- internal/impl/codec_field.go | 2 +- internal/impl/convert.go | 2 +- internal/impl/legacy_message.go | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/impl/api_export.go b/internal/impl/api_export.go index bde47548..4d22c960 100644 --- a/internal/impl/api_export.go +++ b/internal/impl/api_export.go @@ -124,7 +124,7 @@ func (Export) ProtoMessageV2Of(m message) pref.ProtoMessage { if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv } - return legacyWrapMessage(reflect.ValueOf(m)) + return legacyWrapMessage(reflect.ValueOf(m)).Interface() } // MessageOf returns the protoreflect.Message interface over m. @@ -136,7 +136,7 @@ func (Export) MessageOf(m message) pref.Message { if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect() } - return legacyWrapMessage(reflect.ValueOf(m)).ProtoReflect() + return legacyWrapMessage(reflect.ValueOf(m)) } // MessageDescriptorOf returns the protoreflect.MessageDescriptor for m. diff --git a/internal/impl/codec_field.go b/internal/impl/codec_field.go index 94977072..c00744d3 100644 --- a/internal/impl/codec_field.go +++ b/internal/impl/codec_field.go @@ -824,5 +824,5 @@ func asMessage(v reflect.Value) pref.ProtoMessage { if m, ok := v.Interface().(pref.ProtoMessage); ok { return m } - return legacyWrapMessage(v) + return legacyWrapMessage(v).Interface() } diff --git a/internal/impl/convert.go b/internal/impl/convert.go index 5fdb022d..9fc384a7 100644 --- a/internal/impl/convert.go +++ b/internal/impl/convert.go @@ -426,7 +426,7 @@ func (c *messageConverter) PBValueOf(v reflect.Value) pref.Value { if m, ok := v.Interface().(pref.ProtoMessage); ok { return pref.ValueOfMessage(m.ProtoReflect()) } - return pref.ValueOfMessage(legacyWrapMessage(v).ProtoReflect()) + return pref.ValueOfMessage(legacyWrapMessage(v)) } func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value { diff --git a/internal/impl/legacy_message.go b/internal/impl/legacy_message.go index 43b8be2e..a7235696 100644 --- a/internal/impl/legacy_message.go +++ b/internal/impl/legacy_message.go @@ -21,15 +21,15 @@ import ( piface "google.golang.org/protobuf/runtime/protoiface" ) -// legacyWrapMessage wraps v as a protoreflect.ProtoMessage, +// legacyWrapMessage wraps v as a protoreflect.Message, // where v must be a *struct kind and not implement the v2 API already. -func legacyWrapMessage(v reflect.Value) pref.ProtoMessage { +func legacyWrapMessage(v reflect.Value) pref.Message { typ := v.Type() if typ.Kind() != reflect.Ptr || typ.Elem().Kind() != reflect.Struct { return aberrantMessage{v: v} } mt := legacyLoadMessageInfo(typ, "") - return mt.MessageOf(v.Interface()).Interface() + return mt.MessageOf(v.Interface()) } var legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo