diff options
author | yenatch <yenatch@gmail.com> | 2017-09-19 19:29:09 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-19 19:29:09 -0400 |
commit | f94074b6027d1efe067fd972127eb7730cbef2e0 (patch) | |
tree | 86bbc837a14ceec9d5be82e220eeced2d5fe9897 /src/malloc.c | |
parent | e23fb64dad2f349184c8ec44e38f3c495f346785 (diff) | |
parent | 8098a209da963bc1654d1139f3f0d885dfff7af3 (diff) |
Merge pull request #35 from PikalaxALT/field_map_obj
Field map obj
Diffstat (limited to 'src/malloc.c')
-rw-r--r-- | src/malloc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/malloc.c b/src/malloc.c index 3901c5a35..ccb2f7d20 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -38,7 +38,7 @@ void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next void PutFirstMemBlockHeader(void *block, u32 size) { - PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - 16); + PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - sizeof(struct MemBlock)); } void *AllocInternal(void *heapStart, u32 size) @@ -48,6 +48,7 @@ void *AllocInternal(void *heapStart, u32 size) struct MemBlock *splitBlock; u32 foundBlockSize; + // Alignment if (size & 3) size = 4 * ((size / 4) + 1); @@ -58,7 +59,7 @@ void *AllocInternal(void *heapStart, u32 size) foundBlockSize = pos->size; if (foundBlockSize >= size) { - if (foundBlockSize - size <= 31) { + if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) { // The block isn't much bigger than the requested size, // so just use it. pos->flag = TRUE; |