Ver Fonte

allow buffer on local stack

v2ray há 9 anos atrás
pai
commit
f45fa6e918
1 ficheiros alterados com 7 adições e 1 exclusões
  1. 7 1
      common/alloc/buffer.go

+ 7 - 1
common/alloc/buffer.go

@@ -35,7 +35,9 @@ func (b *Buffer) Release() {
 	if b == nil || b.head == nil {
 		return
 	}
-	b.pool.Free(b)
+	if b.pool != nil {
+		b.pool.Free(b)
+	}
 	b.head = nil
 	b.Value = nil
 	b.pool = nil
@@ -216,3 +218,7 @@ func NewBufferWithSize(size int) *Buffer {
 
 	return NewLargeBuffer()
 }
+
+func NewLocalBuffer(size int) *Buffer {
+	return CreateBuffer(make([]byte, size), nil)
+}