Browse Source

simplify buffer allocation

Darien Raymond 7 years ago
parent
commit
c49b93b39e
1 changed files with 6 additions and 4 deletions
  1. 6 4
      common/buf/writer.go

+ 6 - 4
common/buf/writer.go

@@ -29,17 +29,19 @@ func (w *BufferToBytesWriter) WriteMultiBuffer(mb MultiBuffer) error {
 		return WriteAllBytes(w.Writer, mb[0].Bytes())
 	}
 
+	if cap(w.cache) < len(mb) {
+		w.cache = make([][]byte, 0, len(mb))
+	}
+
 	bs := w.cache
 	for _, b := range mb {
 		bs = append(bs, b.Bytes())
 	}
-	w.cache = bs
 
 	defer func() {
-		for idx := range w.cache {
-			w.cache[idx] = nil
+		for idx := range bs {
+			bs[idx] = nil
 		}
-		w.cache = w.cache[:0]
 	}()
 
 	nb := net.Buffers(bs)