From 0cc9b20c15460213e488bf5e70963b941482f628 Mon Sep 17 00:00:00 2001 From: William Harrington Date: Tue, 14 Jan 2025 16:06:02 -0600 Subject: Add source. --- sdk/other/memfree.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sdk/other/memfree.c (limited to 'sdk/other/memfree.c') diff --git a/sdk/other/memfree.c b/sdk/other/memfree.c new file mode 100644 index 0000000..1939f14 --- /dev/null +++ b/sdk/other/memfree.c @@ -0,0 +1,38 @@ +/* + * Advanced free space deallocation for memory pools. + * $Id$ + * Copyright (c) 1997 by Tycho Softworks. + * For conditions of distribution and reuse see product license. + */ + +#include +#include + +void memfree(MEMPOOL *mem, void *obj, int len) +{ + _MEMFREE *free = mem->mem_free; + _MEMCELL *cell = (_MEMCELL *)obj; + len = align(len, __OBJALIGN); + + while(free) + { + if(free->size == len) + break; + + free = free->next; + } + + if(!free) + { + free = memreq(mem, sizeof(_MEMFREE)); + free->list = NULL; + free->next = mem->mem_free; + mem->mem_free = free; + } + + if(free) + { + cell->next = free->list; + free->list = cell; + } +} -- cgit v1.2.3-54-g00ecf