hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

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:
Mcmd/haredoc/main.ha | 13++++++++++---
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;