diff options
| author | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2025-07-22 10:52:55 -0400 |
|---|---|---|
| committer | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2025-07-22 10:52:55 -0400 |
| commit | a0efdf26a6fef9d2db8d7659708b8b9fb142af32 (patch) | |
| tree | 9c163e7ce2fd520926441959502f66826a2c0f73 /core | |
| parent | 58f32cd6909aa83c107175ecf1e03c1148b7bc26 (diff) | |
mem: Clarify `Buddy_Allocator` requirements
Diffstat (limited to 'core')
| -rw-r--r-- | core/mem/allocators.odin | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/mem/allocators.odin b/core/mem/allocators.odin index 0eacb1b65..cb9301f60 100644 --- a/core/mem/allocators.odin +++ b/core/mem/allocators.odin @@ -2223,6 +2223,9 @@ Initialize a buddy allocator. This procedure initializes the buddy allocator `b` with a backing buffer `data` and block alignment specified by `alignment`. + +`alignment` may be any power of two, but the backing buffer must be aligned to +at least `size_of(Buddy_Block)`. */ buddy_allocator_init :: proc(b: ^Buddy_Allocator, data: []byte, alignment: uint, loc := #caller_location) { assert(data != nil) @@ -2233,7 +2236,7 @@ buddy_allocator_init :: proc(b: ^Buddy_Allocator, data: []byte, alignment: uint, alignment = size_of(Buddy_Block) } ptr := raw_data(data) - assert(uintptr(ptr) % uintptr(alignment) == 0, "data is not aligned to minimum alignment", loc) + assert(uintptr(ptr) % uintptr(alignment) == 0, "The data is not aligned to the minimum alignment, which must be at least `size_of(Buddy_Block)`.", loc) b.head = (^Buddy_Block)(ptr) b.head.size = len(data) b.head.is_free = true |