From b46ed2f964b7d700ab79d88c41b759b594156e92 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 3 Sep 2026 19:44:19 +0000 Subject: In aplwc-repl, allocate a bit more (next power of 2) than requested. FossilOrigin-Name: 50c75ed6184d943f18022d48371cf4137b3e973136906fb39d21b52449dd743d --- src/bin/main.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'src/bin') diff --git a/src/bin/main.c b/src/bin/main.c index 516fb51..02b3d0a 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -26,10 +26,33 @@ static void * my_alloc(size_t min, size_t max, size_t *actual) { - UNUSED_PARAMETER(max); + size_t target = min; + void *p; + + if(target == 0) + target = 1; + else{ + target--; + target |= target >> 1; + target |= target >> 2; + target |= target >> 4; + target |= target >> 8; + target |= target >> 16; + target |= target >> 32; + target++; + } + + if(max && (target > max)) + target = max; + + p = malloc(target); + if((p == NULL) && (min < target)){ + target = min; + p = malloc(target); + } - *actual = min; - return malloc(min); + *actual = target; + return p; } static void -- cgit v1.2.3