1
0
mirror of https://github.com/golang/go synced 2024-11-22 01:54:42 -07:00

buffer.go: minor optimization, expanded comment

R=r
CC=golang-dev
https://golang.org/cl/4169043
This commit is contained in:
Robert Griesemer 2011-02-09 15:09:08 -08:00
parent 334f52ac49
commit 4438f50293

View File

@ -154,17 +154,20 @@ func (b *Buffer) ReadFrom(r io.Reader) (n int64, err os.Error) {
} }
// WriteTo writes data to w until the buffer is drained or an error // WriteTo writes data to w until the buffer is drained or an error
// occurs. The return value n is the number of bytes written. // occurs. The return value n is the number of bytes written; it always
// fits into an int, but it is int64 to match the io.WriterTo interface.
// Any error encountered during the write is also returned. // Any error encountered during the write is also returned.
func (b *Buffer) WriteTo(w io.Writer) (n int64, err os.Error) { func (b *Buffer) WriteTo(w io.Writer) (n int64, err os.Error) {
b.lastRead = opInvalid b.lastRead = opInvalid
for b.off < len(b.buf) { if b.off < len(b.buf) {
m, e := w.Write(b.buf[b.off:]) m, e := w.Write(b.buf[b.off:])
n += int64(m)
b.off += m b.off += m
n = int64(m)
if e != nil { if e != nil {
return n, e return n, e
} }
// otherwise all bytes were written, by definition of
// Write method in io.Writer
} }
// Buffer is now empty; reset. // Buffer is now empty; reset.
b.Truncate(0) b.Truncate(0)