Commit 4cb255cf468ed572e2b493f6dfcc37359ea43ae7

Thomas de Grivel 2023-03-14T23:48:08

wip cfn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/libc3/buf_parse.c b/libc3/buf_parse.c
index 7d3f7bd..05d9360 100644
--- a/libc3/buf_parse.c
+++ b/libc3/buf_parse.c
@@ -76,6 +76,7 @@ sw buf_parse_call (s_buf *buf, s_call *dest)
   goto clean;
  restore:
   buf_save_restore_rpos(buf, &save);
+  call_clean(&tmp);
  clean:
   buf_save_clean(buf, &save);
   return r;
@@ -226,7 +227,7 @@ sw buf_parse_call_op_rec (s_buf *buf, s_call *dest, u8 min_precedence)
   right = &list_next(tmp.arguments)->tag;
   tag_copy(&dest->arguments->tag, left);
   if ((r = buf_parse_ident_peek(buf, &next_op)) <= 0)
-    goto clean;
+    goto restore;
   if ((op_precedence = operator_precedence(&next_op)) < 0) {
     r = 0;
     goto restore;