Ver código fonte

Reader: pool the local cache upon Reset

Make sure the buffer used by Readers returns to its pool upon Reset, as this was previously only the case upon successful decompression.

Signed-off-by: Pierre.Curto <pierre.curto@gmail.com>
Pierre.Curto 5 anos atrás
pai
commit
0e076cf636
1 arquivos alterados com 2 adições e 1 exclusões
  1. 2 1
      reader.go

+ 2 - 1
reader.go

@@ -126,7 +126,6 @@ close:
 	if er := r.frame.CloseR(r.src); er != nil {
 	if er := r.frame.CloseR(r.src); er != nil {
 		err = er
 		err = er
 	}
 	}
-	r.frame.Descriptor.Flags.BlockSizeIndex().Put(r.data)
 	r.Reset(nil)
 	r.Reset(nil)
 	return
 	return
 fillbuf:
 fillbuf:
@@ -146,6 +145,8 @@ fillbuf:
 //
 //
 // w.Close must be called before Reset.
 // w.Close must be called before Reset.
 func (r *Reader) Reset(reader io.Reader) {
 func (r *Reader) Reset(reader io.Reader) {
+	size := r.frame.Descriptor.Flags.BlockSizeIndex()
+	size.Put(r.data)
 	r.frame.Reset(1)
 	r.frame.Reset(1)
 	r.src = reader
 	r.src = reader
 	r.data = nil
 	r.data = nil