1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-02 23:50:47 +02:00

* eval.c (scm_ceval, scm_deval): Check for wrong number of args

before applying arrow procedure in `cond' and before applying
receiver procedure in call-with-current-continuation.
(scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
macro.  The argument is expanded more than one time.
This commit is contained in:
Marius Vollmer 2001-02-21 20:14:47 +00:00
parent b8d69b374c
commit e37a4fbae1

View file

@ -2005,6 +2005,8 @@ dispatch:
SCM_ASRTGO (SCM_NIMP (proc), badfun);
PREP_APPLY (proc, scm_cons (t.arg1, SCM_EOL));
ENTER_APPLY;
if (scm_badformalsp (proc, 1))
goto umwrongnumargs;
goto evap1;
}
}
@ -2215,6 +2217,8 @@ dispatch:
SCM_ASRTGO (SCM_NIMP (proc), badfun);
PREP_APPLY (proc, scm_cons (t.arg1, SCM_EOL));
ENTER_APPLY;
if (scm_badformalsp (proc, 1))
goto umwrongnumargs;
goto evap1;
case (SCM_ISYMNUM (SCM_IM_DELAY)):
@ -3863,7 +3867,8 @@ scm_i_eval (SCM exp, SCM env)
SCM transformer = scm_fluid_ref (SCM_CDR (scm_system_transformer));
if (SCM_NIMP (transformer))
exp = scm_apply (transformer, exp, scm_listofnull);
return SCM_XEVAL (scm_copy_tree (exp), env);
exp = scm_copy_tree (exp);
return SCM_XEVAL (exp, env);
}
SCM