From 3d7392a08f00a7328af45c877dc0b3a431780c5b Mon Sep 17 00:00:00 2001 From: fangguizhen <1297394526@qq.com> Date: Thu, 27 May 2021 16:11:52 +0000 Subject: [PATCH] net/rpc: reduce the execution of reflect and decode Change-Id: Ief4b5e1c2d1002392901124c0694afe58c271573 GitHub-Last-Rev: e3b8a60377becfc9c30178d7ae6131d7a4b82dde GitHub-Pull-Request: golang/go#46421 Reviewed-on: https://go-review.googlesource.com/c/go/+/323014 Reviewed-by: Brad Fitzpatrick Trust: Brad Fitzpatrick Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Trust: Ian Lance Taylor --- src/net/rpc/server.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/net/rpc/server.go b/src/net/rpc/server.go index f53ea75f9c..0b3e6e3c58 100644 --- a/src/net/rpc/server.go +++ b/src/net/rpc/server.go @@ -239,16 +239,16 @@ func (server *Server) register(rcvr any, name string, useName bool) error { s := new(service) s.typ = reflect.TypeOf(rcvr) s.rcvr = reflect.ValueOf(rcvr) - sname := reflect.Indirect(s.rcvr).Type().Name() - if useName { - sname = name + sname := name + if !useName { + sname = reflect.Indirect(s.rcvr).Type().Name() } if sname == "" { s := "rpc.Register: no service name for type " + s.typ.String() log.Print(s) return errors.New(s) } - if !token.IsExported(sname) && !useName { + if !useName && !token.IsExported(sname) { s := "rpc.Register: type " + sname + " is not exported" log.Print(s) return errors.New(s) -- 2.50.0