mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 14:50:19 +02:00
* eval.c (SCM_CEVAL): Avoid one level of indirection when applying
a non closure.
This commit is contained in:
parent
e46083d5c5
commit
e910e9d2eb
2 changed files with 12 additions and 7 deletions
|
@ -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>
|
2003-05-30 Stefan Jahn <stefan@lkcc.org>
|
||||||
|
|
||||||
* posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
|
* posix.c (s_scm_putenv): Use the new HAVE_UNSETENV
|
||||||
|
|
|
@ -2383,13 +2383,13 @@ dispatch:
|
||||||
|
|
||||||
|
|
||||||
case (SCM_ISYMNUM (SCM_IM_APPLY)):
|
case (SCM_ISYMNUM (SCM_IM_APPLY)):
|
||||||
proc = SCM_CDR (x);
|
x = SCM_CDR (x);
|
||||||
proc = EVALCAR (proc, env);
|
proc = EVALCAR (x, env);
|
||||||
|
PREP_APPLY (proc, SCM_EOL);
|
||||||
|
x = SCM_CDR (x);
|
||||||
|
arg1 = EVALCAR (x, env);
|
||||||
if (SCM_CLOSUREP (proc))
|
if (SCM_CLOSUREP (proc))
|
||||||
{
|
{
|
||||||
PREP_APPLY (proc, SCM_EOL);
|
|
||||||
arg1 = SCM_CDDR (x);
|
|
||||||
arg1 = EVALCAR (arg1, env);
|
|
||||||
apply_closure:
|
apply_closure:
|
||||||
/* Go here to tail-call a closure. PROC is the closure
|
/* Go here to tail-call a closure. PROC is the closure
|
||||||
and ARG1 is the list of arguments. Do not forget to
|
and ARG1 is the list of arguments. Do not forget to
|
||||||
|
@ -2426,8 +2426,8 @@ dispatch:
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
proc = f_apply;
|
ENTER_APPLY;
|
||||||
goto evapply;
|
RETURN (SCM_APPLY (proc, arg1, SCM_EOL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue