mirror of https://github.com/v2ray/v2ray-core
release buffer on error
parent
8554a5e0bf
commit
7cd2d62d06
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue