From 2da6f72bb78de6e6ca3d387d970cb21bf36684be Mon Sep 17 00:00:00 2001 From: ian Date: Thu, 9 Feb 2012 08:19:58 +0000 Subject: libgo: Update to weekly.2012-02-07. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184034 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgo/go/bytes/buffer.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'libgo/go/bytes') diff --git a/libgo/go/bytes/buffer.go b/libgo/go/bytes/buffer.go index 2c3eb6a596b..a95c2afd005 100644 --- a/libgo/go/bytes/buffer.go +++ b/libgo/go/bytes/buffer.go @@ -57,10 +57,13 @@ func (b *Buffer) String() string { func (b *Buffer) Len() int { return len(b.buf) - b.off } // Truncate discards all but the first n unread bytes from the buffer. -// It is an error to call b.Truncate(n) with n > b.Len(). +// It panics if n is negative or greater than the length of the buffer. func (b *Buffer) Truncate(n int) { b.lastRead = opInvalid - if n == 0 { + switch { + case n < 0 || n > b.Len(): + panic("bytes.Buffer: truncation out of range") + case n == 0: // Reuse buffer space. b.off = 0 } @@ -366,14 +369,15 @@ func (b *Buffer) ReadString(delim byte) (line string, err error) { // buf should have the desired capacity but a length of zero. // // In most cases, new(Buffer) (or just declaring a Buffer variable) is -// preferable to NewBuffer. In particular, passing a non-empty buf to -// NewBuffer and then writing to the Buffer will overwrite buf, not append to -// it. +// sufficient to initialize a Buffer. func NewBuffer(buf []byte) *Buffer { return &Buffer{buf: buf} } // NewBufferString creates and initializes a new Buffer using string s as its -// initial contents. It is intended to prepare a buffer to read an existing -// string. See the warnings about NewBuffer; similar issues apply here. +// initial contents. It is intended to prepare a buffer to read an existing +// string. +// +// In most cases, new(Buffer) (or just declaring a Buffer variable) is +// sufficient to initialize a Buffer. func NewBufferString(s string) *Buffer { return &Buffer{buf: []byte(s)} } -- cgit v1.2.1