From fc8764392216168a6ce7b3554b61103e01d1e28c Mon Sep 17 00:00:00 2001 From: shchmue Date: Thu, 31 Oct 2019 16:46:36 -0600 Subject: [PATCH] heap: Revert problematic size calculation Minor heap fragmentation was not worth preventing --- source/mem/heap.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/source/mem/heap.c b/source/mem/heap.c index 5efdbc2..fd46c16 100644 --- a/source/mem/heap.c +++ b/source/mem/heap.c @@ -83,7 +83,7 @@ static void _heap_free(heap_t *heap, u32 addr) hnode_t *node = (hnode_t *)(addr - sizeof(hnode_t)); node->used = 0; node = heap->first; - while (1) + while (node) { if (!node->used) { @@ -95,14 +95,7 @@ static void _heap_free(heap_t *heap, u32 addr) node->next->prev = node->prev; } } - if (node->next) - node = node->next; - else - { - node->size = -1; - break; - } - + node = node->next; } } @@ -121,7 +114,7 @@ void *malloc(u32 size) void *calloc(u32 num, u32 size) { void *res = (void *)_heap_alloc(&_heap, num * size, sizeof(hnode_t)); - memset(res, 0, ALIGN(num * size, sizeof(hnode_t))); + memset(res, 0, num * size); return res; }