From e5ed3b20351a2715fe88d9a5dbcc8e6757fe96aa Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 24 Aug 2022 06:46:23 +0200 Subject: llvm defer and more --- src/env.cff | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/env.cff') diff --git a/src/env.cff b/src/env.cff index 816053e..6bc24fe 100644 --- a/src/env.cff +++ b/src/env.cff @@ -24,9 +24,9 @@ extern fn envparent(env *Env) *Env { return env.parent; } -extern fn envput(env *Env, decl Decl, old **const Decl) *Decl { +extern fn envput_alloc(env *Env, alloc *Allocator, decl Decl, old **const Decl) *Decl { let l **DeclList = env.decls->get_slot(decl.name); - let n *DeclList = anew(env.alloc, DeclList); + let n *DeclList = anew(alloc, DeclList); if *l { // decl with this name exists let old = (*old = &(*l).decl); switch { @@ -51,6 +51,10 @@ extern fn envput(env *Env, decl Decl, old **const Decl) *Decl { return &n.decl; } +extern fn envput(env *Env, decl Decl, old **const Decl) *Decl { + return envput_alloc(env, env.alloc, decl, old); +} + extern fn envfind(env *Env, name *const u8) *Decl { let l **DeclList = env.decls->get(name); if l == #null { -- cgit v1.2.3