aboutsummaryrefslogtreecommitdiff
path: root/eval.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'eval.cpp')
-rw-r--r--eval.cpp6
1 files changed, 5 insertions, 1 deletions
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))