Fix larena aligned alloc
This commit is contained in:
+2
-2
@@ -163,11 +163,11 @@ static inline void *larena_alloc_aligned(LArena *arena, size_t sz, unsigned int
|
|||||||
assert(align != 0);
|
assert(align != 0);
|
||||||
assert((align & (align - 1)) == 0); // power of 2
|
assert((align & (align - 1)) == 0); // power of 2
|
||||||
|
|
||||||
uintptr_t curr = (uintptr_t)arena->curr;
|
uintptr_t curr = (uintptr_t)arena->;
|
||||||
uintptr_t aligned = (curr + (align - (uintptr_t)1)) & ~(align - (uintptr_t)1);
|
uintptr_t aligned = (curr + (align - (uintptr_t)1)) & ~(align - (uintptr_t)1);
|
||||||
uint8_t *start = (uint8_t *)aligned;
|
uint8_t *start = (uint8_t *)aligned;
|
||||||
|
|
||||||
if (sz > (larena_available(arena))) {
|
if (sz > (size_t)(arena->end - start)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user