aboutsummaryrefslogtreecommitdiff
path: root/symtable.c
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-08-21 21:53:09 +0100
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-08-21 21:53:09 +0100
commit85b83d7a203641639b440b6a164b4075e00e91a6 (patch)
tree27920124aa00e7c2e64190266692e8d1745d28d0 /symtable.c
parented37f7cd80ce92a03ef3fccbbc3246addb29e2e1 (diff)
downloadalisp-85b83d7a203641639b440b6a164b4075e00e91a6.tar.gz
alisp-85b83d7a203641639b440b6a164b4075e00e91a6.tar.bz2
alisp-85b83d7a203641639b440b6a164b4075e00e91a6.zip
Small optimisation: don't initialise a symbol table immediately on init
Why? This way, until we use symbols, the system doesn't generate the table and thus grow the memory usage by a couple kb.
Diffstat (limited to 'symtable.c')
-rw-r--r--symtable.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/symtable.c b/symtable.c
index c804344..15c6cd0 100644
--- a/symtable.c
+++ b/symtable.c
@@ -34,6 +34,10 @@ void sym_table_init(sym_table_t *table)
char *sym_table_find(sym_table_t *table, sv_t sv)
{
+ // Initialise the table if it's not done already
+ if (table->entries.capacity == 0)
+ sym_table_init(table);
+
// WIP: Deal with resizing this when table->count > table->size / 2
u64 index = djb2(sv) & (table->capacity - 1);