Implement Close() for reader in case ZLIB is used in decompressor

This commit is contained in:
DataHoarder 2023-12-02 02:23:37 +01:00
parent 53c744bcaa
commit 2a93692fd6
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
2 changed files with 10 additions and 0 deletions

View file

@ -28,6 +28,7 @@ func main() {
if err != nil {
panic(err)
}
defer reader.Close()
for {
t, err := reader.Tag()

View file

@ -14,6 +14,7 @@ import (
type Reader struct {
r *bitio.Reader
header types.Header
closer func() error
}
func NewReader(reader io.Reader) (*Reader, error) {
@ -39,6 +40,7 @@ func NewReader(reader io.Reader) (*Reader, error) {
if err != nil {
return nil, err
}
r.closer = zlibReader.Close
r.r = bitio.NewReader(zlibReader)
case types.SignatureCompressedLZMA:
if r.header.Version < 13 {
@ -73,6 +75,13 @@ func NewReader(reader io.Reader) (*Reader, error) {
return r, nil
}
func (r *Reader) Close() error {
if r.closer != nil {
return r.closer()
}
return nil
}
func (r *Reader) Header() types.Header {
return r.header
}