Contents in 1999-06-04-13 of release-21-2.
[chise/xemacs-chise.git.1] / src / bytecode.c
index b6a79b9..de2b646 100644 (file)
@@ -226,12 +226,6 @@ static Lisp_Object execute_optimized_program (CONST Opbyte *program,
 
 extern Lisp_Object Qand_rest, Qand_optional;
 
 
 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 */
 /* 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));
 
                                 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;
   }
 
     return value;
   }