Browse Source

release buffer on error

Darien Raymond 8 năm trước cách đây
mục cha
commit
7cd2d62d06
1 tập tin đã thay đổi với 5 bổ sung2 xóa
  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 {