Commit 9ffa21d4 authored by Jim Blandy's avatar Jim Blandy
Browse files

*** empty log message ***

parent 42dcdd5f
...@@ -1946,13 +1946,15 @@ funcall_lambda (fun, nargs, arg_vector) ...@@ -1946,13 +1946,15 @@ funcall_lambda (fun, nargs, arg_vector)
{ {
QUIT; QUIT;
next = Fcar (syms_left); next = Fcar (syms_left);
while (XTYPE (next) != Lisp_Symbol)
next = Fsignal (Qinvalid_function, Fcons (fun, Qnil));
if (EQ (next, Qand_rest)) if (EQ (next, Qand_rest))
rest = 1; rest = 1;
else if (EQ (next, Qand_optional)) else if (EQ (next, Qand_optional))
optional = 1; optional = 1;
else if (rest) else if (rest)
{ {
specbind (Fcar (syms_left), Flist (nargs - i, &arg_vector[i])); specbind (next, Flist (nargs - i, &arg_vector[i]));
i = nargs; i = nargs;
} }
else if (i < nargs) else if (i < nargs)
...@@ -2007,6 +2009,8 @@ specbind (symbol, value) ...@@ -2007,6 +2009,8 @@ specbind (symbol, value)
extern void store_symval_forwarding (); /* in eval.c */ extern void store_symval_forwarding (); /* in eval.c */
Lisp_Object ovalue; Lisp_Object ovalue;
CHECK_SYMBOL (symbol, 0);
if (specpdl_ptr == specpdl + specpdl_size) if (specpdl_ptr == specpdl + specpdl_size)
grow_specpdl (); grow_specpdl ();
specpdl_ptr->symbol = symbol; specpdl_ptr->symbol = symbol;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment