commit 5a839b17026d563370013410d8e99932d1e2b528
parent bdc1cc83329aa38d445f447afcd7ece419237ec8
Author: Sebastian <sebastian@sebsite.pw>
Date: Sat, 8 Jun 2024 01:09:20 -0400
haredoc: fix accidental reuse of static string
oops
Signed-off-by: Sebastian <sebastian@sebsite.pw>
Diffstat:
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/cmd/haredoc/main.ha b/cmd/haredoc/main.ha
@@ -153,7 +153,12 @@ fn doc(name: str, cmd: *getopt::command) (void | error) = {
};
let parse_errs: []lex::syntax = [];
- defer free(parse_errs);
+ defer {
+ for (const err .. parse_errs) {
+ free(err.1);
+ };
+ free(parse_errs);
+ };
if (declpath != "") {
for (let ha .. declsrcs.ha) {
@@ -166,7 +171,8 @@ fn doc(name: str, cmd: *getopt::command) (void | error) = {
};
match (err) {
case let err: lex::syntax =>
- append(parse_errs, err);
+ const msg = strings::dup(err.1);
+ append(parse_errs, (err.0, msg));
continue;
case =>
return err;
@@ -225,7 +231,8 @@ fn doc(name: str, cmd: *getopt::command) (void | error) = {
};
match (err) {
case let err: lex::syntax =>
- append(parse_errs, err);
+ const msg = strings::dup(err.1);
+ append(parse_errs, (err.0, msg));
continue;
case =>
return err;