mirror of https://github.com/golang/go.git
compress/gzip: allow Reset on Reader without NewReader
Fixes #8126. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/103020044
This commit is contained in:
parent
fe3c913443
commit
68bbf9d464
|
|
@ -94,7 +94,11 @@ func NewReader(r io.Reader) (*Reader, error) {
|
|||
// This permits reusing a Reader rather than allocating a new one.
|
||||
func (z *Reader) Reset(r io.Reader) error {
|
||||
z.r = makeReader(r)
|
||||
z.digest.Reset()
|
||||
if z.digest == nil {
|
||||
z.digest = crc32.NewIEEE()
|
||||
} else {
|
||||
z.digest.Reset()
|
||||
}
|
||||
z.size = 0
|
||||
z.err = nil
|
||||
return z.readHeader(true)
|
||||
|
|
|
|||
|
|
@ -353,3 +353,17 @@ func TestIssue6550(t *testing.T) {
|
|||
// ok
|
||||
}
|
||||
}
|
||||
|
||||
func TestInitialReset(t *testing.T) {
|
||||
var r Reader
|
||||
if err := r.Reset(bytes.NewReader(gunzipTests[1].gzip)); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
var buf bytes.Buffer
|
||||
if _, err := io.Copy(&buf, &r); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if s := buf.String(); s != gunzipTests[1].raw {
|
||||
t.Errorf("got %q want %q", s, gunzipTests[1].raw)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue