From 0880335533c13d3c0fee91f749a5a31b3ed185b0 Mon Sep 17 00:00:00 2001 From: Mike Faraponov <11322032+moredure@users.noreply.github.com> Date: Wed, 24 Feb 2021 21:43:56 +0200 Subject: [PATCH] Update compress.go (#978) Add compatibility with flate.Reader to reduce allocations of bufio.NewReader structs backed by default size slices. --- compress.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/compress.go b/compress.go index 6550c9e1fa..f590d28c49 100644 --- a/compress.go +++ b/compress.go @@ -342,6 +342,15 @@ func (r *byteSliceReader) Read(p []byte) (int, error) { return n, nil } +func (r *byteSliceReader) ReadByte() (byte, error) { + if len(r.b) == 0 { + return 0, io.EOF + } + n := r.b[0] + r.b = r.b[1:] + return n, nil +} + func acquireStacklessDeflateWriter(w io.Writer, level int) stackless.Writer { nLevel := normalizeCompressLevel(level) p := stacklessDeflateWriterPoolMap[nLevel]