Explorar el Código

allow buffer on local stack

v2ray hace 9 años
padre
commit
f45fa6e918
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  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)
+}