1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 06:20:23 +02:00

* eval.c (SCM_CEVAL): Avoid one level of indirection when applying

a non closure.
This commit is contained in:
Dirk Herrmann 2003-05-30 11:04:57 +00:00
parent e46083d5c5
commit e910e9d2eb
2 changed files with 12 additions and 7 deletions

View file

@ -1,3 +1,8 @@
2003-05-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c (SCM_CEVAL): Avoid one level of indirection when applying
a non closure.
2003-05-30 Stefan Jahn <stefan@lkcc.org>
* posix.c (s_scm_putenv): Use the new HAVE_UNSETENV

View file

@ -2383,13 +2383,13 @@ dispatch:
case (SCM_ISYMNUM (SCM_IM_APPLY)):
proc = SCM_CDR (x);
proc = EVALCAR (proc, env);
x = SCM_CDR (x);
proc = EVALCAR (x, env);
PREP_APPLY (proc, SCM_EOL);
x = SCM_CDR (x);
arg1 = EVALCAR (x, env);
if (SCM_CLOSUREP (proc))
{
PREP_APPLY (proc, SCM_EOL);
arg1 = SCM_CDDR (x);
arg1 = EVALCAR (arg1, env);
apply_closure:
/* Go here to tail-call a closure. PROC is the closure
and ARG1 is the list of arguments. Do not forget to
@ -2426,8 +2426,8 @@ dispatch:
}
else
{
proc = f_apply;
goto evapply;
ENTER_APPLY;
RETURN (SCM_APPLY (proc, arg1, SCM_EOL));
}