From c28179f9d4ffda87ffceb0900962958a687022fb Mon Sep 17 00:00:00 2001 From: NukeBird Date: Sun, 23 Nov 2025 20:57:09 +0300 Subject: [PATCH] Unite with prev memory block --- axl_memory.c | 17 +++++++++++++++++ main.c | 9 ++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/axl_memory.c b/axl_memory.c index 17db5b1..1a08353 100644 --- a/axl_memory.c +++ b/axl_memory.c @@ -109,4 +109,21 @@ void axl_free(void* ptr) block->size += next_block->size + MB_HEADER_SIZE; block->next = next_block->next; } + + if(block != root) + { + for(mb_header* mb = root; mb != NULL; mb = mb->next) + { + if(mb->next == block) + { + if(mb->is_free) + { + mb_header* prev_free_mb = mb; + prev_free_mb->size += block->size + MB_HEADER_SIZE; + prev_free_mb->next = block->next; + } + break; + } + } + } } diff --git a/main.c b/main.c index 6f9fd2a..f8fff98 100644 --- a/main.c +++ b/main.c @@ -1,15 +1,18 @@ #include "axl.h" #include -int _start(void) // Entry point on Linux +int _start(void) { - MessageBoxA(NULL, "wawa", "fffff", MB_OK | MB_ICONINFORMATION); axl_init(); + void* fds = axl_malloc(83); + int* f = axl_malloc(sizeof(int)); *f = 4; + axl_free(fds); axl_free(f); - + + (void)fds; (void)f; Sleep(2);