mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-12-25 19:45:38 -05:00
remove use of buf.NewSize()
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"io"
|
||||
|
||||
"v2ray.com/core/common"
|
||||
"v2ray.com/core/common/bytespool"
|
||||
"v2ray.com/core/common/errors"
|
||||
)
|
||||
|
||||
@@ -23,6 +24,8 @@ func readOne(r io.Reader) (*Buffer, error) {
|
||||
return nil, newError("Reader returns too many empty payloads.")
|
||||
}
|
||||
|
||||
const largeSize = 128 * 1024
|
||||
|
||||
// BytesToBufferReader is a Reader that adjusts its reading speed automatically.
|
||||
type BytesToBufferReader struct {
|
||||
io.Reader
|
||||
@@ -42,13 +45,13 @@ func (r *BytesToBufferReader) readSmall() (MultiBuffer, error) {
|
||||
return nil, err
|
||||
}
|
||||
if b.IsFull() && largeSize > Size {
|
||||
r.buffer = newBytes(Size + 1)
|
||||
r.buffer = bytespool.Alloc(Size + 100)
|
||||
}
|
||||
return NewMultiBufferValue(b), nil
|
||||
}
|
||||
|
||||
func (r *BytesToBufferReader) freeBuffer() {
|
||||
freeBytes(r.buffer)
|
||||
bytespool.Free(r.buffer)
|
||||
r.buffer = nil
|
||||
}
|
||||
|
||||
@@ -63,8 +66,8 @@ func (r *BytesToBufferReader) ReadMultiBuffer() (MultiBuffer, error) {
|
||||
mb := NewMultiBufferCap(int32(nBytes/Size) + 1)
|
||||
common.Must2(mb.Write(r.buffer[:nBytes]))
|
||||
if nBytes == len(r.buffer) && nBytes < int(largeSize) {
|
||||
freeBytes(r.buffer)
|
||||
r.buffer = newBytes(int32(nBytes) + 1)
|
||||
bytespool.Free(r.buffer)
|
||||
r.buffer = bytespool.Alloc(int32(nBytes) + 100)
|
||||
} else if nBytes < Size {
|
||||
r.freeBuffer()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user