From: Rose <83477269+AtariDreams@users.noreply.github.com> Date: Wed, 3 May 2023 13:52:18 +0000 (-0400) Subject: Introduce PTR_SUB X-Git-Tag: v3.4.0~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c9fe6ca30472b3ca22adb5550f6751334934e12f;p=thirdparty%2Frsync.git Introduce PTR_SUB This is more intuitive than adding a negative number. --- 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);