aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-13 20:50:49 +0000
committerGravatar Runxi Yu2026-06-13 20:50:49 +0000
commitd4c463ccdef83dd6b6cc546f75970b314dbc9e7a (patch)
tree967dfa5d41598e44cc923afb3264af3d066d155d
parentTODO: Object ownership is done (diff)
internal/compress/zlib: Pool adler32
-rw-r--r--internal/compress/zlib/reader_reset.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/internal/compress/zlib/reader_reset.go b/internal/compress/zlib/reader_reset.go
index 17a8fc4e..8d641678 100644
--- a/internal/compress/zlib/reader_reset.go
+++ b/internal/compress/zlib/reader_reset.go
@@ -18,7 +18,7 @@ import (
// reset resets receiver to read a new zlib stream.
func (z *Reader) reset(r io.Reader, dict []byte) error {
- *z = Reader{decompressor: z.decompressor}
+ *z = Reader{decompressor: z.decompressor, digest: z.digest}
var input flate.Reader
if fr, ok := r.(flate.Reader); ok {
@@ -96,7 +96,11 @@ func (z *Reader) reset(r io.Reader, dict []byte) error {
return z.err
}
- z.digest = adler32.New()
+ if z.digest == nil {
+ z.digest = adler32.New()
+ } else {
+ z.digest.Reset()
+ }
return nil
}