Tweaks to decode interface

This commit is contained in:
Caleb Gardner
2022-12-17 16:47:33 -06:00
parent 1b5078c7bd
commit 4f8f5f6928
11 changed files with 87 additions and 75 deletions
+3 -3
View File
@@ -26,7 +26,7 @@ func realSize(siz uint16) uint16 {
}
func (r *Reader) advance() (err error) {
if !r.d.Resetable() {
if _, ok := r.d.(decompress.Resetable); !ok {
if clr, ok := r.cur.(io.Closer); ok {
clr.Close()
}
@@ -39,14 +39,14 @@ func (r *Reader) advance() (err error) {
size := realSize(raw)
r.cur = io.LimitReader(r.master, int64(size))
if size == raw {
if r.d.Resetable() {
if rs, ok := r.d.(decompress.Resetable); ok {
if r.comRdr == nil {
r.cur, err = r.d.Reader(r.cur)
if err != nil {
return
}
} else {
err = r.d.Reset(r.comRdr, r.cur)
err = rs.Reset(r.comRdr, r.cur)
r.cur = r.comRdr
}
} else {