c0f21bb19a
This change changes `buffer.data` into a `[]byte`, from `[bufferSize]byte`. In exchange, each `buffer` is now grouped together to reduce the number of allocation. Plus, `View` now holds an embeded list of `buffer` (via `pool`) to support the happy path which the number of buffer is small. Expect no extra allocation for the happy path. It is to enable the use case for PacketBuffer, which * each `View` is small (way less than `defaultBufferSize`), and * needs to dynamically transfer ownership of `[]byte` to `View`. (to allow gradual migration) PiperOrigin-RevId: 333197252 |
||
---|---|---|
.. | ||
BUILD | ||
buffer.go | ||
pool.go | ||
pool_test.go | ||
safemem.go | ||
safemem_test.go | ||
view.go | ||
view_test.go | ||
view_unsafe.go |