diff --git a/contrib/codecs/rdwr/client.go b/contrib/codecs/rdwr/client.go index a8303ae018cb81b5fd93bd6ebc95235ffdf452d6..d36b04ca05c5a218fec0a5a5f229a1d005a38ba2 100644 --- a/contrib/codecs/rdwr/client.go +++ b/contrib/codecs/rdwr/client.go @@ -110,11 +110,17 @@ func (c *Client) listen() error { func (c *Client) Do(ctx context.Context, result any, method string, params any) error { id := c.p.NextId() + buf := jjson.GetBuf() + defer jjson.PutBuf(buf) req, err := jsonrpc.NewRequest(ctx, jsonrpc.NewId(id), method, params) if err != nil { return err } - err = jjson.MarshalAndEncode(c.wr, req) + err = json.NewEncoder(buf).Encode(req) + if err != nil { + return err + } + err = c.writeContext(req.Context(), buf.Bytes()) if err != nil { return err }