mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-01-03 07:45:29 -05:00
refine buffer struct
This commit is contained in:
@@ -21,9 +21,18 @@ type Buffer struct {
|
||||
offset int
|
||||
}
|
||||
|
||||
func CreateBuffer(container []byte, parent *BufferPool) *Buffer {
|
||||
b := new(Buffer)
|
||||
b.head = container
|
||||
b.pool = parent
|
||||
b.Value = b.head[defaultOffset:]
|
||||
b.offset = defaultOffset
|
||||
return b
|
||||
}
|
||||
|
||||
// Release recycles the buffer into an internal buffer pool.
|
||||
func (b *Buffer) Release() {
|
||||
if b == nil {
|
||||
if b == nil || b.head == nil {
|
||||
return
|
||||
}
|
||||
b.pool.Free(b)
|
||||
@@ -122,7 +131,7 @@ func (b *Buffer) SliceFrom(from int) *Buffer {
|
||||
func (b *Buffer) SliceBack(offset int) *Buffer {
|
||||
newoffset := b.offset - offset
|
||||
if newoffset < 0 {
|
||||
newoffset = 0
|
||||
panic("Negative buffer offset.")
|
||||
}
|
||||
b.Value = b.head[newoffset : b.offset+len(b.Value)]
|
||||
b.offset = newoffset
|
||||
|
||||
Reference in New Issue
Block a user