Implement Close() for reader in case ZLIB is used in decompressor
This commit is contained in:
parent
53c744bcaa
commit
2a93692fd6
|
@ -28,6 +28,7 @@ func main() {
|
|||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer reader.Close()
|
||||
|
||||
for {
|
||||
t, err := reader.Tag()
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue