(r io.Reader)
| 89 | } |
| 90 | |
| 91 | func (c *compressor) Decompress(r io.Reader) (io.Reader, error) { |
| 92 | z, inPool := c.poolDecompressor.Get().(*reader) |
| 93 | if !inPool { |
| 94 | newZ, err := gzip.NewReader(r) |
| 95 | if err != nil { |
| 96 | return nil, err |
| 97 | } |
| 98 | return &reader{Reader: newZ, pool: &c.poolDecompressor}, nil |
| 99 | } |
| 100 | if err := z.Reset(r); err != nil { |
| 101 | c.poolDecompressor.Put(z) |
| 102 | return nil, err |
| 103 | } |
| 104 | return z, nil |
| 105 | } |
| 106 | |
| 107 | func (r *reader) Read(p []byte) (n int, err error) { |
| 108 | n, err = r.Reader.Read(p) |