mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
bytes.Buffer: export the Grow method
Allows a client to pre-allocate buffer space that is known to be necessary, avoiding expensive reallocations. R=gri, gri, adg CC=golang-dev https://golang.org/cl/6392061
This commit is contained in:
parent
1ca7bc268b
commit
1255a6302d
2 changed files with 45 additions and 0 deletions
|
|
@ -99,6 +99,19 @@ func (b *Buffer) grow(n int) int {
|
|||
return b.off + m
|
||||
}
|
||||
|
||||
// Grow grows the buffer's capacity, if necessary, to guarantee space for
|
||||
// another n bytes. After Grow(n), at least n bytes can be written to the
|
||||
// buffer without another allocation.
|
||||
// If n is negative, Grow will panic.
|
||||
// If the buffer can't grow it will panic with ErrTooLarge.
|
||||
func (b *Buffer) Grow(n int) {
|
||||
if n < 0 {
|
||||
panic("bytes.Buffer.Grow: negative count")
|
||||
}
|
||||
m := b.grow(n)
|
||||
b.buf = b.buf[0:m]
|
||||
}
|
||||
|
||||
// Write appends the contents of p to the buffer. The return
|
||||
// value n is the length of p; err is always nil.
|
||||
// If the buffer becomes too large, Write will panic with
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue