core: Do macro expansion only once.
* mes.c (vm_eval_env): I will expand this macro only once.
This commit is contained in:
parent
326095c9c9
commit
681a541774
12
mes.c
12
mes.c
|
@ -467,7 +467,17 @@ vm_eval_env ()
|
||||||
#endif //QUASISYNTAX
|
#endif //QUASISYNTAX
|
||||||
default: {
|
default: {
|
||||||
SCM x = expand_macro_env (r1, r0);
|
SCM x = expand_macro_env (r1, r0);
|
||||||
if (x != r1) return eval_env (x, r0);
|
if (x != r1)
|
||||||
|
{
|
||||||
|
if (TYPE (x) == PAIR)
|
||||||
|
{
|
||||||
|
set_cdr_x (r1, cdr (x));
|
||||||
|
set_car_x (r1, car (x));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
r1 = x;
|
||||||
|
return eval_env (x, r0);
|
||||||
|
}
|
||||||
SCM m = evlis_env (CDR (r1), r0);
|
SCM m = evlis_env (CDR (r1), r0);
|
||||||
return apply_env (car (r1), m, r0);
|
return apply_env (car (r1), m, r0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue