aboutsummaryrefslogtreecommitdiff
path: root/internal/zlib/reader_reset.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-05 17:26:39 +0800
committerGravatar Runxi Yu2026-03-05 17:54:14 +0800
commit7f84e2e246aa9a9b5adb28ccd86fc61635d5c0ea (patch)
tree4b2db9ae70667ddb8e941219099eb1dd6053955f /internal/zlib/reader_reset.go
parenttestgit: Add pack object reader and many object maker (diff)
signatureNo signature
internal/zlib: Add counting flate reader
Diffstat (limited to 'internal/zlib/reader_reset.go')
-rw-r--r--internal/zlib/reader_reset.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/internal/zlib/reader_reset.go b/internal/zlib/reader_reset.go
index a39337f7..6f15b681 100644
--- a/internal/zlib/reader_reset.go
+++ b/internal/zlib/reader_reset.go
@@ -15,13 +15,17 @@ import (
"github.com/klauspost/compress/flate"
)
-func (z *reader) Reset(r io.Reader, dict []byte) error {
- *z = reader{decompressor: z.decompressor}
+// Reset resets receiver to read a new zlib stream.
+func (z *Reader) Reset(r io.Reader, dict []byte) error {
+ *z = Reader{decompressor: z.decompressor}
+ var input flate.Reader
if fr, ok := r.(flate.Reader); ok {
- z.r = fr
+ input = fr
} else {
- z.r = bufio.NewReader(r)
+ input = bufio.NewReader(r)
}
+ z.counter = &countingFlateReader{inner: input}
+ z.r = z.counter
// Read the header (RFC 1950 section 2.2.).
_, z.err = io.ReadFull(z.r, z.scratch[0:2])