X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fbytecode.c;h=de2b646425bd2afd4212d11cf5033fa53eb9c1c4;hp=b6a79b9aa1acc1d20c1f5aa69a6bc4057b140b2a;hb=113b194be934327de99a168d809271db252c07c4;hpb=35adcaaeafb1fe93eaf00c39b48619e8f188ff3f diff --git a/src/bytecode.c b/src/bytecode.c index b6a79b9..de2b646 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -226,12 +226,6 @@ static Lisp_Object execute_optimized_program (CONST Opbyte *program, extern Lisp_Object Qand_rest, Qand_optional; -/* Define ERROR_CHECK_BYTE_CODE to enable some minor sanity checking. - Useful for debugging the byte compiler. */ -#ifdef DEBUG_XEMACS -#define ERROR_CHECK_BYTE_CODE -#endif - /* Define BYTE_CODE_METER to enable generation of a byte-op usage histogram. This isn't defined in FSF Emacs and isn't defined in XEmacs v19. */ /* #define BYTE_CODE_METER */ @@ -529,7 +523,11 @@ funcall_compiled_function (Lisp_Object fun, int nargs, Lisp_Object args[]) f->stack_depth, XVECTOR_DATA (f->constants)); - UNBIND_TO_GCPRO_VARIABLES_ONLY (speccount, value); + /* The attempt to optimize this by only unbinding variables failed + because using buffer-local variables as function parameters + leads to specpdl_ptr->func != 0 */ + /* UNBIND_TO_GCPRO_VARIABLES_ONLY (speccount, value); */ + UNBIND_TO_GCPRO (speccount, value); return value; }