mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 23:50:19 +02:00
Some cleanup on smob calls.
This commit is contained in:
parent
23cc31b8ee
commit
68b069240f
5 changed files with 34 additions and 22 deletions
|
@ -2578,9 +2578,9 @@ evapply:
|
|||
case scm_tc7_asubr:
|
||||
RETURN (SCM_SUBRF (proc) (SCM_UNDEFINED, SCM_UNDEFINED));
|
||||
case scm_tc7_smob:
|
||||
if (!SCM_SMOB_DESCRIPTOR (proc).apply)
|
||||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badfun;
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_0 (proc));
|
||||
RETURN (SCM_SMOB_APPLY_0 (proc));
|
||||
case scm_tc7_cclo:
|
||||
t.arg1 = proc;
|
||||
proc = SCM_CCLO_SUBR (proc);
|
||||
|
@ -2727,9 +2727,9 @@ evapply:
|
|||
RETURN (SCM_SUBRF (proc) (scm_cons (t.arg1, SCM_EOL)));
|
||||
#endif
|
||||
case scm_tc7_smob:
|
||||
if (!SCM_SMOB_DESCRIPTOR (proc).apply)
|
||||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badfun;
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_1 (proc, t.arg1));
|
||||
RETURN (SCM_SMOB_APPLY_1 (proc, t.arg1));
|
||||
case scm_tc7_cclo:
|
||||
arg2 = t.arg1;
|
||||
t.arg1 = proc;
|
||||
|
@ -2843,9 +2843,9 @@ evapply:
|
|||
case scm_tc7_asubr:
|
||||
RETURN (SCM_SUBRF (proc) (t.arg1, arg2));
|
||||
case scm_tc7_smob:
|
||||
if (!SCM_SMOB_DESCRIPTOR (proc).apply)
|
||||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badfun;
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_2 (proc, t.arg1, arg2));
|
||||
RETURN (SCM_SMOB_APPLY_2 (proc, t.arg1, arg2));
|
||||
cclon:
|
||||
case scm_tc7_cclo:
|
||||
#ifdef DEVAL
|
||||
|
@ -2982,10 +2982,10 @@ evapply:
|
|||
case scm_tc7_lsubr:
|
||||
RETURN (SCM_SUBRF (proc) (debug.info->a.args))
|
||||
case scm_tc7_smob:
|
||||
if (!SCM_SMOB_DESCRIPTOR (proc).apply)
|
||||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badfun;
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_3
|
||||
(proc, t.arg1, arg2, SCM_CDDR (debug.info->a.args)));
|
||||
RETURN (SCM_SMOB_APPLY_3 (proc, t.arg1, arg2,
|
||||
SCM_CDDR (debug.info->a.args)));
|
||||
case scm_tc7_cclo:
|
||||
goto cclon;
|
||||
case scm_tc7_pws:
|
||||
|
@ -3044,10 +3044,10 @@ evapply:
|
|||
arg2,
|
||||
scm_eval_args (x, env, proc))));
|
||||
case scm_tc7_smob:
|
||||
if (!SCM_SMOB_DESCRIPTOR (proc).apply)
|
||||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badfun;
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_3
|
||||
(proc, t.arg1, arg2, scm_eval_args (x, env, proc)));
|
||||
RETURN (SCM_SMOB_APPLY_3 (proc, t.arg1, arg2,
|
||||
scm_eval_args (x, env, proc)));
|
||||
case scm_tc7_cclo:
|
||||
goto cclon;
|
||||
case scm_tc7_pws:
|
||||
|
@ -3409,18 +3409,16 @@ tail:
|
|||
}
|
||||
RETURN (EVALCAR (proc, args));
|
||||
case scm_tc7_smob:
|
||||
if (!SCM_SMOB_DESCRIPTOR (proc).apply)
|
||||
if (!SCM_SMOB_APPLICABLE_P (proc))
|
||||
goto badproc;
|
||||
if (SCM_UNBNDP (arg1))
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_0 (proc))
|
||||
RETURN (SCM_SMOB_APPLY_0 (proc))
|
||||
else if (SCM_NULLP (args))
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_1 (proc, arg1))
|
||||
RETURN (SCM_SMOB_APPLY_1 (proc, arg1))
|
||||
else if (SCM_NULLP (SCM_CDR (args)))
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_2
|
||||
(proc, arg1, SCM_CAR (args)))
|
||||
RETURN (SCM_SMOB_APPLY_2 (proc, arg1, SCM_CAR (args)))
|
||||
else
|
||||
RETURN (SCM_SMOB_DESCRIPTOR (proc).apply_3
|
||||
(proc, arg1, SCM_CAR (args), SCM_CDR (args)));
|
||||
RETURN (SCM_SMOB_APPLY_3 (proc, arg1, SCM_CAR (args), SCM_CDR (args)));
|
||||
case scm_tc7_cclo:
|
||||
#ifdef DEVAL
|
||||
args = (SCM_UNBNDP(arg1) ? SCM_EOL : debug.vect[0].a.args);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue