From c9fe6ca30472b3ca22adb5550f6751334934e12f Mon Sep 17 00:00:00 2001 From: Rose <83477269+AtariDreams@users.noreply.github.com> Date: Wed, 3 May 2023 09:52:18 -0400 Subject: [PATCH] Introduce PTR_SUB This is more intuitive than adding a negative number. --- lib/pool_alloc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/pool_alloc.c b/lib/pool_alloc.c index bc1cc1a6..b49e3a7b 100644 --- a/lib/pool_alloc.c +++ b/lib/pool_alloc.c @@ -42,6 +42,7 @@ struct align_test { /* Temporarily cast a void* var into a char* var when adding an offset (to * keep some compilers from complaining about the pointer arithmetic). */ #define PTR_ADD(b,o) ( (void*) ((char*)(b) + (o)) ) +#define PTR_SUB(b,o) ( (void*) ((char*)(b) - (o)) ) alloc_pool_t pool_create(size_t size, size_t quantum, void (*bomb)(const char*, const char*, int), int flags) @@ -100,7 +101,7 @@ pool_destroy(alloc_pool_t p) for (cur = pool->extents; cur; cur = next) { next = cur->next; if (pool->flags & POOL_PREPEND) - free(PTR_ADD(cur->start, -sizeof (struct pool_extent))); + free(PTR_SUB(cur->start, sizeof (struct pool_extent))); else { free(cur->start); free(cur); @@ -235,7 +236,7 @@ pool_free(alloc_pool_t p, size_t len, void *addr) if (cur->free + cur->bound >= pool->size) { prev->next = cur->next; if (pool->flags & POOL_PREPEND) - free(PTR_ADD(cur->start, -sizeof (struct pool_extent))); + free(PTR_SUB(cur->start, sizeof (struct pool_extent))); else { free(cur->start); free(cur); @@ -292,7 +293,7 @@ pool_free_old(alloc_pool_t p, void *addr) while ((cur = next) != NULL) { next = cur->next; if (pool->flags & POOL_PREPEND) - free(PTR_ADD(cur->start, -sizeof (struct pool_extent))); + free(PTR_SUB(cur->start, sizeof (struct pool_extent))); else { free(cur->start); free(cur); -- 2.47.2