release buffer on error

pull/700/head
Darien Raymond 2017-11-07 16:53:02 +01:00
parent 8554a5e0bf
commit 7cd2d62d06
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
1 changed files with 5 additions and 2 deletions

View File

@ -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)) err := b.Reset(ReadFrom(reader))
if !b.IsEmpty() { if b.IsEmpty() {
b.Release()
} else {
mb.Append(b) mb.Append(b)
} }
if err != nil { if err != nil {