commit 33ea3f56907ddabfb0db5697d3473a43e1a1d502
parent ff8504920ddb073c4ecfc72bcb8fca9da7ebb978
Author: erai <erai@omiltem.net>
Date: Sat, 16 Mar 2024 11:39:44 -0400
find_tag: append
Diffstat:
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/lex.c b/lex.c
@@ -593,22 +593,24 @@ intern(c: *compiler): *byte {
find_tag(c: *compiler, s: *byte): *tag {
var t: *tag;
- t = c.tags;
+ var link: **tag;
+ link = &c.tags;
loop {
+ t = *link;
if (!t) {
break;
}
if (!strcmp(t.s, s)) {
return t;
}
- t = t.next;
+ link = &t.next;
}
t = alloc(&c.a, sizeof(*t)): *tag;
- t.next = c.tags;
+ t.next = 0:*tag;
t.s = intern(c);
t.id = c.ntags;
c.ntags = c.ntags + 1;
- c.tags = t;
+ *link = t;
return t;
}