summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-09-03 19:31:52 +0000
committerpeter <peter@pmikkelsen.com>2026-09-03 19:31:52 +0000
commitfa6a3ee5b24d5e227798330cff5f9ff060d6d863 (patch)
treeb251207d74ae183b0e0bb155e4e0f9f86334c3d3 /src/bin
parent84dd0d9fa985c1c740b3145c6b0d858cca978911 (diff)
Don't dynamically allocate external reference counted pointers, just use what the user puts on the stack.
FossilOrigin-Name: 270cf0d72050bea15fc40a1e2811ba642e3ef26cbe1fa6231c5aa6f1872ccb34
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/main.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/bin/main.c b/src/bin/main.c
index 00fd88b..516fb51 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -145,10 +145,10 @@ file_size:
for(;;){
if(input)
free(input);
- if(aplwc_valid_line(line))
- aplwc_free_line(line);
- if(aplwc_valid_value(value))
- aplwc_free_value(value);
+ if(aplwc_valid_line(&line))
+ aplwc_free_line(&line);
+ if(aplwc_valid_value(&value))
+ aplwc_free_value(&value);
input = NULL;
if(getline(&input, &input_size, stdin) < 0){
@@ -157,8 +157,8 @@ file_size:
break;
}else{
line_number++;
- line = aplwc_read(aplwc, input);
- if(!aplwc_valid_line(line)){
+ aplwc_read(aplwc, input, &line);
+ if(!aplwc_valid_line(&line)){
line_error:
fprintf(stderr, "error on line %d: %s: %s\n", line_number, aplwc_errstr(aplwc), input);
if(input_file){
@@ -167,20 +167,20 @@ line_error:
}
continue;
}
- value = aplwc_eval(line);
- if(!aplwc_valid_value(value))
+ aplwc_eval(&line, &value);
+ if(!aplwc_valid_value(&value))
goto line_error;
- fprintf(stdout, "%s\n", aplwc_value_string(value));
+ fprintf(stdout, "%s\n", aplwc_value_string(&value));
}
}
exit:
if(input)
free(input);
- if(aplwc_valid_line(line))
- aplwc_free_line(line);
- if(aplwc_valid_value(value))
- aplwc_free_value(value);
+ if(aplwc_valid_line(&line))
+ aplwc_free_line(&line);
+ if(aplwc_valid_value(&value))
+ aplwc_free_value(&value);
aplwc_destroy(aplwc);
return exit_code;