|
@@ -24,7 +24,7 @@ type Buffer struct {
|
|
|
UDP *net.Destination
|
|
UDP *net.Destination
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// New creates a Buffer with 0 length and 2K capacity.
|
|
|
|
|
|
|
+// New creates a Buffer with 0 length and 8K capacity.
|
|
|
func New() *Buffer {
|
|
func New() *Buffer {
|
|
|
buf := pool.Get().([]byte)
|
|
buf := pool.Get().([]byte)
|
|
|
if cap(buf) >= Size {
|
|
if cap(buf) >= Size {
|
|
@@ -57,8 +57,15 @@ func NewExisted(b []byte) *Buffer {
|
|
|
// StackNew creates a new Buffer object on stack.
|
|
// StackNew creates a new Buffer object on stack.
|
|
|
// This method is for buffers that is released in the same function.
|
|
// This method is for buffers that is released in the same function.
|
|
|
func StackNew() Buffer {
|
|
func StackNew() Buffer {
|
|
|
|
|
+ buf := pool.Get().([]byte)
|
|
|
|
|
+ if cap(buf) >= Size {
|
|
|
|
|
+ buf = buf[:Size]
|
|
|
|
|
+ } else {
|
|
|
|
|
+ buf = make([]byte, Size)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return Buffer{
|
|
return Buffer{
|
|
|
- v: pool.Get().([]byte),
|
|
|
|
|
|
|
+ v: buf,
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -72,7 +79,7 @@ func (b *Buffer) Release() {
|
|
|
b.v = nil
|
|
b.v = nil
|
|
|
b.Clear()
|
|
b.Clear()
|
|
|
|
|
|
|
|
- if cap(p) >= Size {
|
|
|
|
|
|
|
+ if cap(p) == Size {
|
|
|
pool.Put(p)
|
|
pool.Put(p)
|
|
|
}
|
|
}
|
|
|
b.UDP = nil
|
|
b.UDP = nil
|