mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Slightly simplify gsubr invocation in the evaluator.
* libguile/eval.i.c (CEVAL): Remove the `cclon' label; replace jumps to `cclon' with `RETURN (scm_i_gsubr_apply (...))'.
This commit is contained in:
parent
3e414c302f
commit
d18f4d805e
1 changed files with 6 additions and 7 deletions
|
@ -1345,15 +1345,11 @@ dispatch:
|
|||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badfun;
|
||||
RETURN (SCM_SMOB_APPLY_2 (proc, arg1, arg2));
|
||||
cclon:
|
||||
case scm_tc7_gsubr:
|
||||
#ifdef DEVAL
|
||||
RETURN (scm_i_gsubr_apply (proc, debug.info->a.args));
|
||||
#else
|
||||
RETURN (scm_i_gsubr_apply (proc,
|
||||
scm_cons2 (arg1, arg2,
|
||||
scm_ceval_args (x, env,
|
||||
proc))));
|
||||
RETURN (scm_i_gsubr_apply (proc, scm_list_2 (arg1, arg2)));
|
||||
#endif
|
||||
case scm_tcs_struct:
|
||||
if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)
|
||||
|
@ -1483,7 +1479,7 @@ dispatch:
|
|||
RETURN (SCM_SMOB_APPLY_3 (proc, arg1, arg2,
|
||||
SCM_CDDR (debug.info->a.args)));
|
||||
case scm_tc7_gsubr:
|
||||
goto cclon;
|
||||
RETURN (scm_i_gsubr_apply (proc, debug.info->a.args));
|
||||
case scm_tc7_pws:
|
||||
proc = SCM_PROCEDURE (proc);
|
||||
debug.info->a.proc = proc;
|
||||
|
@ -1546,7 +1542,10 @@ dispatch:
|
|||
RETURN (SCM_SMOB_APPLY_3 (proc, arg1, arg2,
|
||||
scm_ceval_args (x, env, proc)));
|
||||
case scm_tc7_gsubr:
|
||||
goto cclon;
|
||||
RETURN (scm_i_gsubr_apply (proc,
|
||||
scm_cons2 (arg1, arg2,
|
||||
scm_ceval_args (x, env,
|
||||
proc))));
|
||||
case scm_tc7_pws:
|
||||
proc = SCM_PROCEDURE (proc);
|
||||
if (!SCM_CLOSUREP (proc))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue