aboutsummaryrefslogtreecommitdiff
path: root/core/mem/rollback_stack_allocator.odin
diff options
context:
space:
mode:
authorFeoramund <161657516+Feoramund@users.noreply.github.com>2024-05-29 16:19:06 -0400
committerFeoramund <161657516+Feoramund@users.noreply.github.com>2024-06-02 14:47:07 -0400
commitbf42e39b1ce77da0bc45f64ff35322e618a59b9c (patch)
tree82230e3d2dc3cb54c2810da667b0427f7891898b /core/mem/rollback_stack_allocator.odin
parentc531427ee5d95187d4da1edb1679b67af58b4cbb (diff)
Be specific about `int` size for `Rollback_Stack` asserts
This should fix tests failing on 32-bit platforms.
Diffstat (limited to 'core/mem/rollback_stack_allocator.odin')
-rw-r--r--core/mem/rollback_stack_allocator.odin8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/mem/rollback_stack_allocator.odin b/core/mem/rollback_stack_allocator.odin
index 75b3cd745..d159897cd 100644
--- a/core/mem/rollback_stack_allocator.odin
+++ b/core/mem/rollback_stack_allocator.odin
@@ -251,12 +251,16 @@ rollback_stack_init_buffered :: proc(stack: ^Rollback_Stack, buffer: []byte, loc
rollback_stack_init_dynamic :: proc(
stack: ^Rollback_Stack,
- block_size := ROLLBACK_STACK_DEFAULT_BLOCK_SIZE,
+ block_size : int = ROLLBACK_STACK_DEFAULT_BLOCK_SIZE,
block_allocator := context.allocator,
location := #caller_location,
) -> Allocator_Error {
assert(block_size >= size_of(Rollback_Stack_Header) + size_of(rawptr), "Rollback Stack Allocator block size is too small.", location)
- assert(block_size <= ROLLBACK_STACK_MAX_HEAD_BLOCK_SIZE, "Rollback Stack Allocators cannot support head blocks larger than 2 gigabytes.", location)
+ when size_of(int) > 4 {
+ // It's impossible to specify an argument in excess when your integer
+ // size is insufficient; check only on platforms with big enough ints.
+ assert(block_size <= ROLLBACK_STACK_MAX_HEAD_BLOCK_SIZE, "Rollback Stack Allocators cannot support head blocks larger than 2 gigabytes.", location)
+ }
block := rb_make_block(block_size, block_allocator) or_return