summaryrefslogtreecommitdiff
path: root/symbol.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2022-02-09 13:08:12 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2022-02-09 13:08:12 +0000
commite195d66a333102924bae452ba09dc20cba4e96e6 (patch)
tree83ce2bd6c816eb9087b4c7f575e52e77ae8faa73 /symbol.c
parenta8f66d313a4ec83622e1e0fce3206a65c12324a9 (diff)
Since symbols now have pointers to their values, we don't need the symbol.undefined field anymore
Diffstat (limited to 'symbol.c')
-rw-r--r--symbol.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/symbol.c b/symbol.c
index 046857b..8f4797a 100644
--- a/symbol.c
+++ b/symbol.c
@@ -47,9 +47,9 @@ getsym(Rune *name, int fresh)
tab->syms = erealloc(tab->syms, sizeof(Symbol *) * tab->nsyms);
tab->syms[tab->nsyms-1] = emalloc(sizeof(Symbol));
tab->syms[tab->nsyms-1]->name = runestrdup(name);
- tab->syms[tab->nsyms-1]->undefined = 1;
tab->syms[tab->nsyms-1]->getfn = nil;
tab->syms[tab->nsyms-1]->setfn = nil;
+ tab->syms[tab->nsyms-1]->value = nil;
return tab->syms[tab->nsyms-1];
}
@@ -71,8 +71,7 @@ freesymtab(Symtab *tab)
int i;
for(i = 0; i < tab->nsyms; i++){
Symbol *s = tab->syms[i];
- if(s->undefined == 0)
- freedatum(s->value);
+ freedatum(s->value);
free(s->name);
}
free(tab->syms);
@@ -87,22 +86,18 @@ initsymtab(void)
s = getsym(L"⍺", 1);
s->getfn = getalpha;
s->setfn = setalpha;
- s->undefined = 0;
s = getsym(L"⍵", 1);
s->getfn = getomega;
s->setfn = setsyntaxerr;
- s->undefined = 0;
s = getsym(L"⍶", 1);
s->getfn = getalphao;
s->setfn = setsyntaxerr;
- s->undefined = 0;
s = getsym(L"⍹", 1);
s->getfn = getomegao;
s->setfn = setsyntaxerr;
- s->undefined = 0;
}
DfnFrame *