MISRA_ARENA_ALLOCATOR_MAGIC
Description
Per-type magic for ArenaAllocator. Stamped into Allocator.base.__magic by ArenaAllocatorInit*. The arena implementation functions validate this exact value so other allocator instances reinterpreted as an ArenaAllocator * are rejected at runtime as type-confusion.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Arena.c:15:
static void arena_validate_self(const Allocator *self) {
if (!self || self->__magic != MISRA_ARENA_ALLOCATOR_MAGIC) {
LOG_FATAL("type-confusion: allocator passed to arena_allocator_* is not an ArenaAllocator");
}- In
Arena.h:70:
.effort = ALLOCATOR_EFFORT_ONCE, \
.retry_limit = 0, \
.__magic = MISRA_ARENA_ALLOCATOR_MAGIC}, \
.head = NULL, \
.tail = NULL, \
- In
Arena.h:87:
.effort = ALLOCATOR_EFFORT_ONCE, \
.retry_limit = 0, \
.__magic = MISRA_ARENA_ALLOCATOR_MAGIC}, \
.head = NULL, \
.tail = NULL, \
Last updated on