* eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
Fixed formals tests for closures. (Thanks to Kevin Ryde.)
This commit is contained in:
parent
b3d7f6dfea
commit
4b612c5be7
2 changed files with 13 additions and 6 deletions
|
|
@ -1,3 +1,8 @@
|
|||
2003-02-10 Mikael Djurfeldt <djurfeldt@nada.kth.se>
|
||||
|
||||
* eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
|
||||
Fixed formals tests for closures. (Thanks to Kevin Ryde.)
|
||||
|
||||
2003-02-05 Mikael Djurfeldt <djurfeldt@nada.kth.se>
|
||||
|
||||
* debug.c (scm_procedure_source): Handle all objects for which
|
||||
|
|
|
|||
|
|
@ -3848,7 +3848,7 @@ scm_trampoline_0 (SCM proc)
|
|||
case scm_tcs_closures:
|
||||
{
|
||||
SCM formals = SCM_CLOSURE_FORMALS (proc);
|
||||
if (SCM_NULLP (formals) || SCM_SYMBOLP (formals))
|
||||
if (SCM_NULLP (formals) || !SCM_CONSP (formals))
|
||||
return scm_i_call_closure_0;
|
||||
else
|
||||
return 0;
|
||||
|
|
@ -3961,8 +3961,8 @@ scm_trampoline_1 (SCM proc)
|
|||
case scm_tcs_closures:
|
||||
{
|
||||
SCM formals = SCM_CLOSURE_FORMALS (proc);
|
||||
if ((SCM_CONSP (formals) && SCM_NULLP (SCM_CDR (formals)))
|
||||
|| SCM_SYMBOLP (formals))
|
||||
if (!SCM_NULLP (formals)
|
||||
&& (!SCM_CONSP (formals) || !SCM_CONSP (SCM_CDR (formals))))
|
||||
return call_closure_1;
|
||||
else
|
||||
return 0;
|
||||
|
|
@ -4037,9 +4037,11 @@ scm_trampoline_2 (SCM proc)
|
|||
case scm_tcs_closures:
|
||||
{
|
||||
SCM formals = SCM_CLOSURE_FORMALS (proc);
|
||||
if (!SCM_CONSP (formals)
|
||||
|| (SCM_CONSP (SCM_CDR (formals))
|
||||
&& SCM_NULLP (SCM_CDDR (formals))))
|
||||
if (!SCM_NULLP (formals)
|
||||
&& (!SCM_CONSP (formals)
|
||||
|| (!SCM_NULLP (SCM_CDR (formals))
|
||||
&& (!SCM_CONSP (SCM_CDR (formals))
|
||||
|| !SCM_CONSP (SCM_CDDR (formals))))))
|
||||
return call_closure_2;
|
||||
else
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue