aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c
index bf4fec4f8a..8700ca222c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2742,6 +2742,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
if (debug_on_next_call)
do_debug_on_call (Qlambda);
+ CHECK_CONS_LIST ();
+
retry:
fun = args[0];
@@ -2750,9 +2752,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
if (SUBRP (fun))
{
- CHECK_CONS_LIST ();
-
- if (numargs < XSUBR (fun)->min_args
+ if (numargs < XSUBR (fun)->min_args
|| (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs))
{
XSETFASTINT (lisp_numargs, numargs);
@@ -2844,6 +2844,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
else if (EQ (funcar, Qautoload))
{
do_autoload (fun, args[0]);
+ CHECK_CONS_LIST ();
goto retry;
}
else