Parcourir la source

release buffer on error

Darien Raymond il y a 8 ans
Parent
commit
7cd2d62d06
1 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. 5 2
      common/buf/multi_buffer.go

+ 5 - 2
common/buf/multi_buffer.go

@@ -18,13 +18,16 @@ type MultiBufferReader interface {
 	ReadMultiBuffer() (MultiBuffer, error)
 }
 
+// ReadAllToMultiBuffer reads all content from the reader into a MultiBuffer, until EOF.
 func ReadAllToMultiBuffer(reader io.Reader) (MultiBuffer, error) {
 	mb := NewMultiBuffer()
 
 	for {
 		b := New()
-		err := b.AppendSupplier(ReadFrom(reader))
-		if !b.IsEmpty() {
+		err := b.Reset(ReadFrom(reader))
+		if b.IsEmpty() {
+			b.Release()
+		} else {
 			mb.Append(b)
 		}
 		if err != nil {