diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2020-01-12 14:04:34 -0500 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2020-01-12 14:04:34 -0500 |
commit | 7659a5ff48bb51baa6fcf5dfe13c8583413f7f4a (patch) | |
tree | 183fcadb06a6892a86875d057e397d74e3c159b9 /types.c | |
parent | 2069b22cbcbbf293151db0c7c2a3e29f8c29c977 (diff) |
better identifier system (uses much less memory)
Diffstat (limited to 'types.c')
-rw-r--r-- | types.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -978,13 +978,11 @@ static bool types_expr(Typer *tr, Expression *e) { return false; } size_t name_str_len = (size_t)name_str.n; - char *name_cstr = err_malloc(name_str_len + 1); + char *name_cstr = typer_malloc(tr, name_str_len + 1); memcpy(name_cstr, name_str.data, name_str_len); name_cstr[name_str.n] = '\0'; - /* advance copy so we can free the original */ - char *copy = name_cstr; - Identifier name_ident = ident_insert(tr->idents, ©); - free(name_cstr); + Identifier name_ident = ident_insert(tr->idents, &name_cstr); + assert(!*name_cstr); e->pkg.name_ident = name_ident; if (!name_ident->pkg) { char *filename = typer_malloc(tr, name_str_len + 5); |