gvisor/pkg/buffer
Ting-Yu Wang c0f21bb19a pkg/buffer: Reorganize internal structure to allow dynamic sizes.
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
2020-09-22 17:56:40 -07:00
..
BUILD pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
buffer.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
pool.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
pool_test.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
safemem.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
safemem_test.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
view.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
view_test.go pkg/buffer: Reorganize internal structure to allow dynamic sizes. 2020-09-22 17:56:40 -07:00
view_unsafe.go Make pipe buffer implementation standard. 2020-02-28 12:29:23 -08:00