From 798cb64441228d473f7bdd213183c70fb582595c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 6 Mar 2011 00:07:48 -0500 Subject: [PATCH] Missing file in last commit. * src/eval.c (funcall_lambda): Adjust arglist test accordingly. --- src/eval.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/eval.c b/src/eval.c index 869d70e3d7f..1f6a5e4a1c6 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3136,8 +3136,8 @@ funcall_lambda (Lisp_Object fun, int nargs, } else if (COMPILEDP (fun)) { - if ((ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK) > COMPILED_PUSH_ARGS - && ! NILP (XVECTOR (fun)->contents[COMPILED_PUSH_ARGS])) + syms_left = AREF (fun, COMPILED_ARGLIST); + if (INTEGERP (syms_left)) /* A byte-code object with a non-nil `push args' slot means we shouldn't bind any arguments, instead just call the byte-code interpreter directly; it will push arguments as necessary. @@ -3154,10 +3154,9 @@ funcall_lambda (Lisp_Object fun, int nargs, return exec_byte_code (AREF (fun, COMPILED_BYTECODE), AREF (fun, COMPILED_CONSTANTS), AREF (fun, COMPILED_STACK_DEPTH), - AREF (fun, COMPILED_ARGLIST), + syms_left, nargs, arg_vector); } - syms_left = AREF (fun, COMPILED_ARGLIST); lexenv = Qnil; } else -- 2.39.5