exceptions: dispatch signals exceptions (not conditions)

This commit is contained in:
Daniel Kochmański 2025-05-14 12:45:42 +02:00
parent 15013d2352
commit 5ce3a2be4d

View file

@ -22,7 +22,7 @@ ecl_function_dispatch(cl_env_ptr env, cl_object x)
{
cl_object fun = x;
if (ecl_unlikely(fun == ECL_NIL))
FEundefined_function(x);
ecl_ferror(ECL_EX_F_UNDEF, fun, ECL_NIL);
switch (ecl_t_of(fun)) {
case t_cfunfixed:
env->function = fun;
@ -47,7 +47,7 @@ ecl_function_dispatch(cl_env_ptr env, cl_object x)
env->function = fun;
return fun->bclosure.entry;
default:
FEinvalid_function(x);
ecl_ferror(ECL_EX_F_INVAL, fun, ECL_NIL);
}
_ecl_unexpected_return();
}
@ -739,7 +739,7 @@ APPLY_fixed(cl_narg n, cl_object (*fn)(), cl_object *x)
x[50],x[51],x[52],x[53],x[54],x[55],x[56],
x[57],x[58],x[59],x[60],x[61],x[62]);
default:
FEprogram_error("Too many arguments", 0);
ecl_ferror(ECL_EX_F_NARGS, ecl_make_fixnum(n), ECL_NIL);
}
_ecl_unexpected_return();
}