2
3
4
5
6
7
8
9
11#ifndef GIMBAL_POOL_ALLOCATOR_H
12#define GIMBAL_POOL_ALLOCATOR_H
16#define GBL_SELF_TYPE GblPoolAllocator
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
53 size_t entriesPerPage,
55 GblArenaAllocatorPage* pInitialPage,
66#define GblPoolAllocator_construct(...) GblPoolAllocator_constructDefault_
(__VA_ARGS__)
71#define GblPoolAllocator_constructDefault_(...)
73#define GblPoolAllocator_constructDefault__(self, size, perPage, align, initial, ctx, ...)
#define GblPoolAllocator_construct(...)
Pool allocator for ultra-fast fixed-size allocations.
GblLinkedListNode freeList
Link list of deleted entries for efficient recycling.
size_t activeEntries
Number of allocated, used entries.
size_t entryAlign
Alignment requirement for each entry.
size_t entrySize
Base struct size of each entry.
GblArenaAllocator arena
Arena allocator instance providing backing allocations.