浏览代码

release buffer on error

Darien Raymond 8 年之前
父节点
当前提交
7cd2d62d06
共有 1 个文件被更改,包括 5 次插入2 次删除
  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)
 	ReadMultiBuffer() (MultiBuffer, error)
 }
 }
 
 
+// ReadAllToMultiBuffer reads all content from the reader into a MultiBuffer, until EOF.
 func ReadAllToMultiBuffer(reader io.Reader) (MultiBuffer, error) {
 func ReadAllToMultiBuffer(reader io.Reader) (MultiBuffer, error) {
 	mb := NewMultiBuffer()
 	mb := NewMultiBuffer()
 
 
 	for {
 	for {
 		b := New()
 		b := New()
-		err := b.AppendSupplier(ReadFrom(reader))
-		if !b.IsEmpty() {
+		err := b.Reset(ReadFrom(reader))
+		if b.IsEmpty() {
+			b.Release()
+		} else {
 			mb.Append(b)
 			mb.Append(b)
 		}
 		}
 		if err != nil {
 		if err != nil {