/* Restore certain special C variables. */
set_poll_suppress_count (catch->poll_suppress_count);
- interrupt_input_blocked = catch->interrupt_input_blocked;
+ UNBLOCK_INPUT_TO (catch->interrupt_input_blocked);
handling_signal = 0;
immediate_quit = 0;
args_left = original_args;
numargs = Flength (args_left);
+ CHECK_CONS_LIST ();
+
if (XINT (numargs) < XSUBR (fun)->min_args ||
(XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < XINT (numargs)))
return Fsignal (Qwrong_number_of_arguments, Fcons (fun, Fcons (numargs, Qnil)));
return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
}
done:
+ CHECK_CONS_LIST ();
+
lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
if (SUBRP (fun))
{
+ CHECK_CONS_LIST ();
+
if (numargs < XSUBR (fun)->min_args
|| (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs))
{
return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
}
done:
+ CHECK_CONS_LIST ();
lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));