aboutsummaryrefslogtreecommitdiff
path: root/internal/compress/zlib/reader_reset.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/compress/zlib/reader_reset.go')
-rw-r--r--internal/compress/zlib/reader_reset.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/internal/compress/zlib/reader_reset.go b/internal/compress/zlib/reader_reset.go
index b1b9afa6..6a9340c2 100644
--- a/internal/compress/zlib/reader_reset.go
+++ b/internal/compress/zlib/reader_reset.go
@@ -10,14 +10,15 @@ import (
"errors"
"io"
+ "github.com/klauspost/compress/flate"
+
"lindenii.org/go/furgit/internal/adler32"
- "lindenii.org/go/furgit/internal/compress/flate"
"lindenii.org/go/lgo/intconv"
)
// 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, br: z.br}
var input flate.Reader
if fr, ok := r.(flate.Reader); ok {
@@ -95,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
}