From ac6cb82b065d24e2691dd8ad430f6a8159861550 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Sun, 21 Jan 2018 14:33:43 -0800 Subject: [PATCH] avoid shrinking if using the bootstrap buffer --- buffer.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/buffer.go b/buffer.go index 98a5c8b..364722b 100644 --- a/buffer.go +++ b/buffer.go @@ -253,11 +253,18 @@ func (b *Buffer) Read(buf []byte) (int, error) { } func (b *Buffer) shrink() { + c := b.Cap() + // Either nil or bootstrap. + if c <= len(b.bootstrap) { + return + } + l := b.Len() if l == 0 { + // Shortcut if empty. b.returnBuf() b.rOff = 0 - } else if l*8 < b.Cap() { + } else if l*8 < c { // Only shrink when capacity > 8x length. Avoids shrinking too aggressively. newBuf := b.getBuf(l) copy(newBuf, b.buf[b.rOff:]) -- GitLab