Browse Source

minor tweak

hmol233 4 years ago
parent
commit
e4bf620795
1 changed files with 10 additions and 3 deletions
  1. 10 3
      common/buf/buffer.go

+ 10 - 3
common/buf/buffer.go

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