From ce5daaa835fffd790db6973cf5ec75bedf31a18a Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Mon, 7 Oct 2024 22:56:47 +0200 Subject: Small change in custom Aligned Memory Allocator --- src/custommem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/custommem.c b/src/custommem.c index 71e35a74..ee6a942e 100644 --- a/src/custommem.c +++ b/src/custommem.c @@ -635,7 +635,8 @@ void internal_print_block(int i) void* internal_customMemAligned(size_t align, size_t size, int is32bits) { - size_t init_size = size; + size_t align_mask = align-1; + size_t init_size = (size+align_mask)&~align_mask; size = roundSize(size); if(align<8) align = 8; // look for free space @@ -647,7 +648,7 @@ void* internal_customMemAligned(size_t align, size_t size, int is32bits) size_t rsize = 0; sub = getFirstBlock(p_blocks[i].block, init_size, &rsize, p_blocks[i].first); uintptr_t p = (uintptr_t)sub+sizeof(blockmark_t); - uintptr_t aligned_p = (p+(align-1))&~(align-1); + uintptr_t aligned_p = (p+align_mask)&~align_mask; uintptr_t empty_size = 0; if(aligned_p!=p) empty_size = aligned_p-p; -- cgit 1.4.1