summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-09-30 12:31:18 -0400
committerRuss Cox <rsc@golang.org>2014-09-30 12:31:18 -0400
commit9eb8ab0a6252bd1d4a9142cca053302407f5d8a3 (patch)
treed1353c188441b0bb6e96ca76238c622695429633 /src
parent8e21ec6e36e89dc17698358ce620194fc09c898a (diff)
downloadgo-9eb8ab0a6252bd1d4a9142cca053302407f5d8a3.tar.gz
compress/*: note that NewReader may introduce buffering
Fixes issue 8309. LGTM=r R=golang-codereviews, r CC=golang-codereviews, iant https://codereview.appspot.com/147380043
Diffstat (limited to 'src')
-rw-r--r--src/compress/bzip2/bzip2.go2
-rw-r--r--src/compress/flate/inflate.go8
-rw-r--r--src/compress/gzip/gunzip.go3
-rw-r--r--src/compress/lzw/reader.go2
4 files changed, 11 insertions, 4 deletions
diff --git a/src/compress/bzip2/bzip2.go b/src/compress/bzip2/bzip2.go
index d318116a1..15575d220 100644
--- a/src/compress/bzip2/bzip2.go
+++ b/src/compress/bzip2/bzip2.go
@@ -42,6 +42,8 @@ type reader struct {
}
// NewReader returns an io.Reader which decompresses bzip2 data from r.
+// If r does not also implement io.ByteReader,
+// the decompressor may read more data than necessary from r.
func NewReader(r io.Reader) io.Reader {
bz2 := new(reader)
bz2.br = newBitReader(r)
diff --git a/src/compress/flate/inflate.go b/src/compress/flate/inflate.go
index 769ef4299..a7fe94c50 100644
--- a/src/compress/flate/inflate.go
+++ b/src/compress/flate/inflate.go
@@ -680,9 +680,11 @@ func makeReader(r io.Reader) Reader {
}
// NewReader returns a new ReadCloser that can be used
-// to read the uncompressed version of r. It is the caller's
-// responsibility to call Close on the ReadCloser when
-// finished reading.
+// to read the uncompressed version of r.
+// If r does not also implement io.ByteReader,
+// the decompressor may read more data than necessary from r.
+// It is the caller's responsibility to call Close on the ReadCloser
+// when finished reading.
func NewReader(r io.Reader) io.ReadCloser {
var f decompressor
f.bits = new([maxLit + maxDist]int)
diff --git a/src/compress/gzip/gunzip.go b/src/compress/gzip/gunzip.go
index 4f398b194..fc08c7a48 100644
--- a/src/compress/gzip/gunzip.go
+++ b/src/compress/gzip/gunzip.go
@@ -77,7 +77,8 @@ type Reader struct {
}
// NewReader creates a new Reader reading the given reader.
-// The implementation buffers input and may read more data than necessary from r.
+// If r does not also implement io.ByteReader,
+// the decompressor may read more data than necessary from r.
// It is the caller's responsibility to call Close on the Reader when done.
func NewReader(r io.Reader) (*Reader, error) {
z := new(Reader)
diff --git a/src/compress/lzw/reader.go b/src/compress/lzw/reader.go
index cd90c9c63..0835bd8b9 100644
--- a/src/compress/lzw/reader.go
+++ b/src/compress/lzw/reader.go
@@ -222,6 +222,8 @@ func (d *decoder) Close() error {
// NewReader creates a new io.ReadCloser.
// Reads from the returned io.ReadCloser read and decompress data from r.
+// If r does not also implement io.ByteReader,
+// the decompressor may read more data than necessary from r.
// It is the caller's responsibility to call Close on the ReadCloser when
// finished reading.
// The number of bits to use for literal codes, litWidth, must be in the