diff --git a/go.mod b/go.mod index dd91d1b..ee36360 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,6 @@ require ( github.com/fatih/color v1.15.0 // indirect github.com/go-redis/redis/v8 v8.11.5 // indirect github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible // indirect - github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect github.com/google/uuid v1.3.0 // indirect diff --git a/go.sum b/go.sum index 357be7a..abe4a1c 100644 --- a/go.sum +++ b/go.sum @@ -114,8 +114,6 @@ github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompati github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 h1:zN2lZNZRflqFyxVaTIU61KNKQ9C0055u9CAfpmqUvo4= -github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3/go.mod h1:nPpo7qLxd6XL3hWJG/O60sR8ZKfMCiIoNap5GvD12KU= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= diff --git a/grpc/client.go b/grpc/client.go index 1d1e914..6872d6d 100644 --- a/grpc/client.go +++ b/grpc/client.go @@ -25,8 +25,6 @@ import ( "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/descriptorpb" "google.golang.org/protobuf/types/dynamicpb" - - "github.com/golang-collections/collections/stack" ) // Client represents a gRPC client that can be used to make RPC requests @@ -285,14 +283,16 @@ func (c *Client) convertToMethodInfo(fdset *descriptorpb.FileDescriptorSet) ([]M } } - s := stack.New() messages := fd.Messages() + + stack := make([]protoreflect.MessageDescriptor, 0, messages.Len()) for i := 0; i < messages.Len(); i++ { - s.Push(messages.Get(i)) + stack = append(stack, messages.Get(i)) } - for s.Len() > 0 { - message, _ := s.Pop().(protoreflect.MessageDescriptor) + for len(stack) > 0 { + message := stack[len(stack)-1] + stack = stack[:len(stack)-1] _, errFind := protoregistry.GlobalTypes.FindMessageByName(message.FullName()) if errors.Is(errFind, protoregistry.NotFound) { @@ -304,7 +304,7 @@ func (c *Client) convertToMethodInfo(fdset *descriptorpb.FileDescriptorSet) ([]M nested := message.Messages() for i := 0; i < nested.Len(); i++ { - s.Push(nested.Get(i)) + stack = append(stack, nested.Get(i)) } }