(dst []byte)
| 97 | } |
| 98 | |
| 99 | func (c *Conn) ReadPacketReuseMem(dst []byte) ([]byte, error) { |
| 100 | // Here we use `sync.Pool` to avoid allocate/destroy buffers frequently. |
| 101 | buf := utils.BytesBufferGet() |
| 102 | defer utils.BytesBufferPut(buf) |
| 103 | |
| 104 | if err := c.ReadPacketTo(buf); err != nil { |
| 105 | c.pkgErr = err |
| 106 | return nil, errors.Trace(err) |
| 107 | } else { |
| 108 | result := append(dst, buf.Bytes()...) |
| 109 | return result, nil |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | func (c *Conn) copyN(dst io.Writer, src io.Reader, n int64) (written int64, err error) { |
| 114 | for n > 0 { |
no test coverage detected