diff --git a/common/bufpool/pool.go b/common/bufpool/pool.go index f975c7a..c471a50 100644 --- a/common/bufpool/pool.go +++ b/common/bufpool/pool.go @@ -14,7 +14,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 128) - return &b + return b }, }, }, @@ -23,7 +23,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 512) - return &b + return b }, }, }, @@ -32,7 +32,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 1024) - return &b + return b }, }, }, @@ -41,7 +41,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 2048) - return &b + return b }, }, }, @@ -50,7 +50,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 4096) - return &b + return b }, }, }, @@ -59,7 +59,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 8192) - return &b + return b }, }, }, @@ -68,7 +68,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 16*1024) - return &b + return b }, }, }, @@ -77,7 +77,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 32*1024) - return &b + return b }, }, }, @@ -86,7 +86,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 64*1024) - return &b + return b }, }, }, @@ -95,7 +95,7 @@ var ( pool: sync.Pool{ New: func() any { b := make([]byte, 65*1024) - return &b + return b }, }, }, @@ -103,21 +103,20 @@ var ( ) // Get returns a buffer of specified size. -func Get(size int) *[]byte { +func Get(size int) []byte { for i := range pools { if size <= pools[i].size { - b := pools[i].pool.Get().(*[]byte) - *b = (*b)[:size] - return b + b := pools[i].pool.Get().([]byte) + return b[:size] } } b := make([]byte, size) - return &b + return b } -func Put(b *[]byte) { +func Put(b []byte) { for i := range pools { - if cap(*b) == pools[i].size { + if cap(b) == pools[i].size { pools[i].pool.Put(b) } } diff --git a/common/net/udp/conn.go b/common/net/udp/conn.go index f3f4c9e..0f62e30 100644 --- a/common/net/udp/conn.go +++ b/common/net/udp/conn.go @@ -37,7 +37,7 @@ func (c *conn) ReadFrom(b []byte) (n int, addr net.Addr, err error) { case bb := <-c.rc: n = copy(b, bb) c.SetIdle(false) - bufpool.Put(&bb) + bufpool.Put(bb) case <-c.closed: err = net.ErrClosed diff --git a/common/net/udp/listener.go b/common/net/udp/listener.go index 312acba..3c31edb 100644 --- a/common/net/udp/listener.go +++ b/common/net/udp/listener.go @@ -69,7 +69,7 @@ func (ln *listener) listenLoop() { b := bufpool.Get(ln.config.ReadBufferSize) - n, raddr, err := ln.conn.ReadFrom(*b) + n, raddr, err := ln.conn.ReadFrom(b) if err != nil { ln.errChan <- err close(ln.errChan) @@ -82,7 +82,7 @@ func (ln *listener) listenLoop() { continue } - if err := c.WriteQueue((*b)[:n]); err != nil { + if err := c.WriteQueue(b[:n]); err != nil { ln.config.Logger.Warn("data discarded: ", err) } }