From 91a58b979ce2065190468b8fe21b7e47992ab566 Mon Sep 17 00:00:00 2001 From: devopsbo3 <69951731+devopsbo3@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:27:53 -0600 Subject: [PATCH] Revert "rlp: remove allocation of bytes.Reader in DecodeBytes (#27987)" This reverts commit b3a7b8f7666a7b03979209758660815dc49dcac1. --- rlp/decode.go | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/rlp/decode.go b/rlp/decode.go index 9b17d2d810..c9b50e8c18 100644 --- a/rlp/decode.go +++ b/rlp/decode.go @@ -90,7 +90,7 @@ func Decode(r io.Reader, val interface{}) error { // DecodeBytes parses RLP data from b into val. Please see package-level documentation for // the decoding rules. The input must contain exactly one value and no trailing data. func DecodeBytes(b []byte, val interface{}) error { - r := (*sliceReader)(&b) + r := bytes.NewReader(b) stream := streamPool.Get().(*Stream) defer streamPool.Put(stream) @@ -99,7 +99,7 @@ func DecodeBytes(b []byte, val interface{}) error { if err := stream.Decode(val); err != nil { return err } - if len(b) > 0 { + if r.Len() > 0 { return ErrMoreThanOneValue } return nil @@ -1182,23 +1182,3 @@ func (s *Stream) listLimit() (inList bool, limit uint64) { } return true, s.stack[len(s.stack)-1] } - -type sliceReader []byte - -func (sr *sliceReader) Read(b []byte) (int, error) { - if len(*sr) == 0 { - return 0, io.EOF - } - n := copy(b, *sr) - *sr = (*sr)[n:] - return n, nil -} - -func (sr *sliceReader) ReadByte() (byte, error) { - if len(*sr) == 0 { - return 0, io.EOF - } - b := (*sr)[0] - *sr = (*sr)[1:] - return b, nil -}