diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-07 22:56:47 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-07 22:56:47 +0200 |
| commit | ce5daaa835fffd790db6973cf5ec75bedf31a18a (patch) | |
| tree | da5c2ad53c2281ac200e6590fd387e8579472c00 /src/custommem.c | |
| parent | 8fe06816819eb41e6e7c99d5b26ba3e9a0b9fc92 (diff) | |
| download | box64-ce5daaa835fffd790db6973cf5ec75bedf31a18a.tar.gz box64-ce5daaa835fffd790db6973cf5ec75bedf31a18a.zip | |
Small change in custom Aligned Memory Allocator
Diffstat (limited to 'src/custommem.c')
| -rw-r--r-- | src/custommem.c | 5 |
1 files changed, 3 insertions, 2 deletions
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; |