Pool module

pool_allocator_proc

procedure · 1 overloadSource

The Allocator_Proc for a pool: use it as Allocator.{ pool_allocator_proc, *pool }.

Allocate and resize take memory from the pool (a resize copies, and never reuses the old space); free does nothing; shutdown calls release. IS_THIS_YOURS is answered for addresses inside any block the pool has handed out, ordinary or oversized. Unsupported modes fail an assert.

pool_allocator_proc :: (
    mode: Allocator_Mode,
    requested_size: s64,
    old_size: s64,
    old_memory: *void,
    allocator_data: *void
) -> *void

The Allocator_Proc for a pool: use it as Allocator.{ pool_allocator_proc, *pool }.

Allocate and resize take memory from the pool (a resize copies, and never reuses the old space); free does nothing; shutdown calls release. IS_THIS_YOURS is answered for addresses inside any block the pool has handed out, ordinary or oversized. Unsupported modes fail an assert.

Parameters

mode: Allocator_Mode
requested_size: s64
old_size: s64
old_memory: *void
allocator_data: *void

Returns

*void

See also