1
0
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:
v2ray
2016-07-15 14:24:20 +02:00
parent 631db6e69a
commit 9523cb3ec3
2 changed files with 12 additions and 8 deletions

View File

@@ -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