summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_lambda.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp/ao_lisp_lambda.c')
-rw-r--r--src/lisp/ao_lisp_lambda.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/lisp/ao_lisp_lambda.c b/src/lisp/ao_lisp_lambda.c
index b164cd66..526863c5 100644
--- a/src/lisp/ao_lisp_lambda.c
+++ b/src/lisp/ao_lisp_lambda.c
@@ -166,8 +166,7 @@ ao_lisp_lambda_eval(void)
case AO_LISP_FUNC_LAMBDA:
for (f = 0; f < args_wanted; f++) {
DBGI("bind "); DBG_POLY(args->car); DBG(" = "); DBG_POLY(vals->car); DBG("\n");
- next_frame->vals[f].atom = args->car;
- next_frame->vals[f].val = vals->car;
+ ao_lisp_frame_bind(next_frame, f, args->car, vals->car);
args = ao_lisp_poly_cons(args->cdr);
vals = ao_lisp_poly_cons(vals->cdr);
}
@@ -180,14 +179,12 @@ ao_lisp_lambda_eval(void)
case AO_LISP_FUNC_MACRO:
for (f = 0; f < args_wanted - 1; f++) {
DBGI("bind "); DBG_POLY(args->car); DBG(" = "); DBG_POLY(vals->car); DBG("\n");
- next_frame->vals[f].atom = args->car;
- next_frame->vals[f].val = vals->car;
+ ao_lisp_frame_bind(next_frame, f, args->car, vals->car);
args = ao_lisp_poly_cons(args->cdr);
vals = ao_lisp_poly_cons(vals->cdr);
}
DBGI("bind "); DBG_POLY(args->car); DBG(" = "); DBG_POLY(ao_lisp_cons_poly(vals)); DBG("\n");
- next_frame->vals[f].atom = args->car;
- next_frame->vals[f].val = ao_lisp_cons_poly(vals);
+ ao_lisp_frame_bind(next_frame, f, args->car, ao_lisp_cons_poly(vals));
break;
default:
break;