From addbfae58d8afceb06d92f6ef1cdfed89c07518b Mon Sep 17 00:00:00 2001 From: Teddy Date: Wed, 14 Aug 2013 23:28:20 +0800 Subject: significant improvement on gc efficiency --- eval.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'eval.cpp') diff --git a/eval.cpp b/eval.cpp index 2576157..fd301e7 100644 --- a/eval.cpp +++ b/eval.cpp @@ -11,7 +11,11 @@ EvalObj *eval_stack[EVAL_STACK_SIZE]; void Evaluator::add_builtin_routines() { #define ADD_ENTRY(name, rout) \ - envt->add_binding(new SymObj(name), rout) +do { \ + SymObj *tmp = new SymObj(name); \ + envt->add_binding(tmp, rout); \ + delete tmp; \ +} while (0) #define ADD_BUILTIN_PROC(name, rout) \ ADD_ENTRY(name, new BuiltinProcObj(rout, name)) -- cgit v1.2.3