From 8521b6a69deab8cdabe1c87b09ecdc93d75af98e Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 30 Aug 2026 14:20:55 +0000 Subject: Remove the struct memory struct FossilOrigin-Name: 38568a34f631b2a4eef72542e2988a9fe081f85d3248194c2ff995a9eed6bd5d --- src/lib/eval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lib/eval.c') diff --git a/src/lib/eval.c b/src/lib/eval.c index f0cdc55..649914d 100644 --- a/src/lib/eval.c +++ b/src/lib/eval.c @@ -9,7 +9,7 @@ eval_line(struct aplwc_line *line) aplwc = line->aplwc; assert(aplwc->last_error == APLWC_OK); - value = memory_alloc_aplwc_value(&aplwc->memory); + value = memory_alloc_aplwc_value(aplwc); if(value == NULL) aplwc->last_error = APLWC_OUT_OF_MEMORY; value->aplwc = aplwc; -- cgit v1.2.3 From 2261ffa04ddf30a7c8eae6e64129b293fc8bffd9 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 30 Aug 2026 14:25:56 +0000 Subject: Let the memory allocation code set the last_error to APLWC_OUT_OF_MEMORY, instead of the callers FossilOrigin-Name: 46c74e207a84e861636dbfebc4ba8bb9e7b17401dfd2c4fb9bdeae0fa98fd530 --- src/lib/eval.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/lib/eval.c') diff --git a/src/lib/eval.c b/src/lib/eval.c index 649914d..21fb223 100644 --- a/src/lib/eval.c +++ b/src/lib/eval.c @@ -10,10 +10,9 @@ eval_line(struct aplwc_line *line) assert(aplwc->last_error == APLWC_OK); value = memory_alloc_aplwc_value(aplwc); - if(value == NULL) - aplwc->last_error = APLWC_OUT_OF_MEMORY; - value->aplwc = aplwc; - value->tag = VALUE_NULL; - + if(value != NULL){ + value->aplwc = aplwc; + value->tag = VALUE_NULL; + } return value; } -- cgit v1.2.3 From 729964bea692f9683860978b89848784a7fc2f46 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 30 Aug 2026 20:52:43 +0000 Subject: Still a lot to be done, but I'm going to bed. Two remaining big issues: * aplwc (the parameter passed "everywhere") - should it move or not? * values returned from the public API should not move. FossilOrigin-Name: 31ab3154b8f3d5ac167218496e9e204324bf0ac9d36b7bada8fe2a6c8f93d51c --- src/lib/eval.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/lib/eval.c') diff --git a/src/lib/eval.c b/src/lib/eval.c index 21fb223..50c3cda 100644 --- a/src/lib/eval.c +++ b/src/lib/eval.c @@ -14,5 +14,6 @@ eval_line(struct aplwc_line *line) value->aplwc = aplwc; value->tag = VALUE_NULL; } + return value; } -- cgit v1.2.3 From 34189c9b67f3427e077152e3a6c8cb21f4ba3441 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 31 Aug 2026 19:49:48 +0000 Subject: Remove some unneeded references to struct aplwc * in various structures. FossilOrigin-Name: 3b4b7806320d604b0df3654896cfe5d885f116d893ae15cfb3422d6d2de7193c --- src/lib/eval.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/lib/eval.c') diff --git a/src/lib/eval.c b/src/lib/eval.c index 50c3cda..0da90db 100644 --- a/src/lib/eval.c +++ b/src/lib/eval.c @@ -1,19 +1,17 @@ #include "aplwc_internal.h" struct aplwc_value * -eval_line(struct aplwc_line *line) +eval_line(struct aplwc *aplwc, struct aplwc_line *line) { struct aplwc_value *value; - struct aplwc *aplwc; - aplwc = line->aplwc; + UNUSED_PARAMETER(line); + assert(aplwc->last_error == APLWC_OK); value = memory_alloc_aplwc_value(aplwc); - if(value != NULL){ - value->aplwc = aplwc; + if(value != NULL) value->tag = VALUE_NULL; - } return value; } -- cgit v1.2.3