|
HAllocator
A Simple C++ Memory Allocator
|
Metadata structure for each memory block. More...
#include <basic_alloc.hpp>

Public Attributes | |
| MemNode * | nxt |
| Pointer to next block in list. | |
| MemNode * | prv |
| Pointer to previous block in list. | |
| MemSizeT | size |
| Size in bytes (bit 0 = free flag) | |
Metadata structure for each memory block.
This structure lives immediately before the user-visible memory. It forms a doubly-linked list of all blocks (free and used).
Memory layout: [MemNode metadata] [user memory ...] ^- pointer returned to user
The size field encodes both size and free/used status:
| MemNode* hh::basic_alloc::MemNode::nxt |
Pointer to next block in list.
| MemNode* hh::basic_alloc::MemNode::prv |
Pointer to previous block in list.
| MemSizeT hh::basic_alloc::MemNode::size |
Size in bytes (bit 0 = free flag)