35#define VL_POOL_INVALID_IDX VL_STRUCTURE_INDEX_MAX
37#ifndef vlLinearPoolSample
44#define vlLinearPoolSample(poolPtr, poolIndex) (vl_transient*)(((vl_usmall_t*)((poolPtr)->buffer.data) + ((poolIndex) * (poolPtr)->elementSize)))
A multi-purpose byte buffer.
Definition vl_buffer.h:19
vl_buffer buffer
Definition vl_linear_pool.h:31
vl_linearpool * vlLinearPoolClone(const vl_linearpool *src, vl_linearpool *dest)
Clones the specified source pool.
Definition vl_linear_pool.c:33
vl_linearpool_idx vlLinearPoolTellIndex(vl_linearpool *pool, const vl_transient *dataPtr)
Calculates the index of the specified element pointer. May return VL_POOL_INVALID_IDX if the specifie...
Definition vl_linear_pool.c:57
vl_linearpool_idx vlLinearPoolTake(vl_linearpool *pool)
Definition vl_linear_pool.c:64
void vlLinearPoolReturn(vl_linearpool *pool, vl_linearpool_idx offset)
Definition vl_linear_pool.c:85
void vlLinearPoolReserve(vl_linearpool *pool, vl_memsize_t n)
Reserves space for n-many elements in the underlying pool buffer.
Definition vl_linear_pool.c:46
void vlLinearPoolDelete(vl_linearpool *pool)
De-initializes and deletes the specified pool. This will clear up all memory associated with members ...
Definition vl_linear_pool.c:22
vl_dsidx_t totalTaken
Definition vl_linear_pool.h:29
void vlLinearPoolFree(vl_linearpool *pool)
De-initializes the specified pool instance. This will clear up all memory associated with members of ...
Definition vl_linear_pool.c:11
vl_linearpool * vlLinearPoolNew(vl_memsize_t elementSize)
Allocates and initializes a pool instance.
Definition vl_linear_pool.c:16
vl_buffer freeStack
Definition vl_linear_pool.h:32
vl_dsidx_t vl_linearpool_idx
Definition vl_linear_pool.h:47
vl_memsize_t elementSize
Definition vl_linear_pool.h:28
void vlLinearPoolInit(vl_linearpool *pool, vl_memsize_t elementSize)
Initializes the specified pool instance.
Definition vl_linear_pool.c:4
void vlLinearPoolClear(vl_linearpool *pool)
Definition vl_linear_pool.c:27
A simple pool allocator, useful for avoiding many smaller heap allocations.
Definition vl_linear_pool.h:27
VL_MEMORY_SIZE_T vl_memsize_t
Definition vl_memory.h:18
VL_MEMORY_T vl_transient
Definition vl_memory.h:85
VL_STRUCTURE_INDEX_T vl_dsidx_t
Index type for data structures.
Definition vl_numtypes.h:13