From 0091c055edceca2598dfb7dd64cdcb081e4c7507 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 31 Aug 2026 20:04:50 +0000 Subject: Fix problems in release builds FossilOrigin-Name: 98227d25674f373968f51df0dcdccf3cf14d646a13e56a9229103d1aeb3ad73d --- src/bin/main.c | 1 + src/lib/memory.c | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 42ab963..c3743f2 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -36,6 +36,7 @@ main(int argc, char *argv[]) aplwc_clear_line(&line); aplwc_clear_value(&value); + input = NULL; xflag = 0; input_file = 0; exit_code = 0; diff --git a/src/lib/memory.c b/src/lib/memory.c index b6e044a..694a31b 100644 --- a/src/lib/memory.c +++ b/src/lib/memory.c @@ -105,7 +105,7 @@ grow(struct aplwc *aplwc, size_t extra) { uint8_t *unaligned_data, *aligned_data; size_t unaligned_newsize, aligned_newsize, adjust; - struct chunk **free; + struct chunk **free, *head; if(aplwc->fns.alloc == NULL) goto error; @@ -123,16 +123,17 @@ grow(struct aplwc *aplwc, size_t extra) aligned_newsize -= aligned_newsize % ALIGNMENT; assert(aligned_newsize >= (aplwc->size + extra)); + head = (struct chunk *)aligned_data; if(aplwc->data){ memmove(aligned_data, aplwc->data, aplwc->size); fixrefs(aplwc, aligned_data, aplwc->data); if(aplwc->fns.dealloc) aplwc->fns.dealloc(aplwc->unaligned_data); - for(free = (struct chunk **)&aligned_data; (*free); free = &(*free)->next) + for(free = &head; (*free); free = &(*free)->next) assert((*free)->tag != CHUNK_TAG_FREE); }else - free = (struct chunk **)&aligned_data; + free = &head; (*free) = (struct chunk *)(aligned_data + aplwc->size); -- cgit v1.2.3