From 2f5b1e490bd720142db4451be802a65a6d25bfb9 Mon Sep 17 00:00:00 2001 From: Alex Sharov <AskAlexSharov@gmail.com> Date: Tue, 7 Sep 2021 09:54:00 +0700 Subject: [PATCH] revert json iter pool change (#2627) --- cmd/rpcdaemon/commands/trace_filtering.go | 28 +++++++++++++++-------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/cmd/rpcdaemon/commands/trace_filtering.go b/cmd/rpcdaemon/commands/trace_filtering.go index f91e71104e..d09b54727a 100644 --- a/cmd/rpcdaemon/commands/trace_filtering.go +++ b/cmd/rpcdaemon/commands/trace_filtering.go @@ -266,9 +266,7 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, str return err } - var stdlibCompatibleJson = jsoniter.ConfigCompatibleWithStandardLibrary.BorrowStream(stream) - defer jsoniter.ConfigCompatibleWithStandardLibrary.ReturnStream(stdlibCompatibleJson) - + var json = jsoniter.ConfigCompatibleWithStandardLibrary stream.WriteArrayStart() first := true // Execute all transactions in picked blocks @@ -324,14 +322,18 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, str pt.BlockNumber = &blockNumber pt.TransactionHash = &txHash pt.TransactionPosition = &txPosition + b, err := json.Marshal(pt) + if err != nil { + stream.WriteNil() + return err + } if nSeen > after && nExported < count { if first { first = false } else { stream.WriteMore() } - stdlibCompatibleJson.WriteVal(pt) - stdlibCompatibleJson.Flush() + stream.Write(b) nExported++ } } @@ -352,14 +354,18 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, str *tr.BlockNumber = block.NumberU64() tr.Type = "reward" // nolint: goconst tr.TraceAddress = []int{} + b, err := json.Marshal(tr) + if err != nil { + stream.WriteNil() + return err + } if nSeen > after && nExported < count { if first { first = false } else { stream.WriteMore() } - stdlibCompatibleJson.WriteVal(tr) - stdlibCompatibleJson.Flush() + stream.Write(b) nExported++ } } @@ -379,14 +385,18 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, str *tr.BlockNumber = block.NumberU64() tr.Type = "reward" // nolint: goconst tr.TraceAddress = []int{} + b, err := json.Marshal(tr) + if err != nil { + stream.WriteNil() + return err + } if nSeen > after && nExported < count { if first { first = false } else { stream.WriteMore() } - stdlibCompatibleJson.WriteVal(tr) - stdlibCompatibleJson.Flush() + stream.Write(b) nExported++ } } -- GitLab