|
|
@@ -3,25 +3,25 @@ package quic
|
|
|
import (
|
|
|
"sync"
|
|
|
|
|
|
+ "v2ray.com/core/common/bytespool"
|
|
|
+
|
|
|
"github.com/lucas-clemente/quic-go/internal/protocol"
|
|
|
)
|
|
|
|
|
|
-var bufferPool sync.Pool
|
|
|
+var bufferPool *sync.Pool
|
|
|
|
|
|
func getPacketBuffer() *[]byte {
|
|
|
- return bufferPool.Get().(*[]byte)
|
|
|
+ b := bufferPool.Get().([]byte)
|
|
|
+ return &b
|
|
|
}
|
|
|
|
|
|
func putPacketBuffer(buf *[]byte) {
|
|
|
- if cap(*buf) != int(protocol.MaxReceivePacketSize) {
|
|
|
+ if cap(*buf) < int(protocol.MaxReceivePacketSize) {
|
|
|
panic("putPacketBuffer called with packet of wrong size!")
|
|
|
}
|
|
|
- bufferPool.Put(buf)
|
|
|
+ bufferPool.Put(*buf)
|
|
|
}
|
|
|
|
|
|
func init() {
|
|
|
- bufferPool.New = func() interface{} {
|
|
|
- b := make([]byte, 0, protocol.MaxReceivePacketSize)
|
|
|
- return &b
|
|
|
- }
|
|
|
+ bufferPool = bytespool.GetPool(protocol.MaxReceivePacketSize)
|
|
|
}
|