Commit: def847b0fe1b6411b2fe7462868a2b878dd51e89
Parent: de5fd539910b244b6906c3bd05451038ea010d8c
Author: Randy Palamar
Date: Wed, 29 Apr 2026 14:21:03 -0600
core: fix wasted 4K in shared memory scratch area
The scratch region is supposed to start at 1 past the last
reserved parameter block but that was being added twice. Now it is
only added once and there is an extra 4K of scratch space.
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/beamformer_shared_memory.c b/beamformer_shared_memory.c
@@ -1,5 +1,5 @@
/* See LICENSE for license details. */
-#define BEAMFORMER_SHARED_MEMORY_VERSION (27UL)
+#define BEAMFORMER_SHARED_MEMORY_VERSION (28UL)
typedef struct BeamformerFrame BeamformerFrame;
@@ -250,7 +250,7 @@ beamformer_shared_memory_release_lock(BeamformerSharedMemory *sm, i32 lock)
function BeamformerParameterBlock *
beamformer_parameter_block(BeamformerSharedMemory *sm, u32 block)
{
- assert(sm->reserved_parameter_blocks >= block);
+ assert(sm->reserved_parameter_blocks > block);
BeamformerParameterBlock *result = (typeof(result))((u8 *)(sm + 1) + block * sizeof(*result));
return result;
}
@@ -283,7 +283,7 @@ function Arena
beamformer_shared_memory_scratch_arena(BeamformerSharedMemory *sm, i64 shared_memory_size)
{
assert(sm->reserved_parameter_blocks > 0);
- BeamformerParameterBlock *last = beamformer_parameter_block(sm, sm->reserved_parameter_blocks);
+ BeamformerParameterBlock *last = beamformer_parameter_block(sm, sm->reserved_parameter_blocks - 1);
Arena result = {.beg = (u8 *)(last + 1), .end = (u8 *)sm + shared_memory_size};
result.beg = arena_aligned_start(result, KB(4));
return result;