(find_handler_clause): Temporarily increase max-lisp-eval-depth while
authorChong Yidong <cyd@stupidchicken.com>
Wed, 27 Aug 2008 20:26:03 +0000 (20:26 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Wed, 27 Aug 2008 20:26:03 +0000 (20:26 +0000)
printing the backtrace buffer, to guarantee that help-mode code can
run.

src/ChangeLog
src/eval.c

index 0049b35..43d5caa 100644 (file)
@@ -1,3 +1,9 @@
+2008-08-27  Chong Yidong  <cyd@stupidchicken.com>
+
+       * eval.c (find_handler_clause): Temporarily increase
+       max-lisp-eval-depth while printing the backtrace buffer, to
+       guarantee that help-mode code can run.
+
 2008-08-27  Eli Zaretskii  <eliz@gnu.org>
 
        * msdos.c (Fmsdos_remember_default_colors): Don't reverse frame
index 083cea8..6531b97 100644 (file)
@@ -1941,16 +1941,18 @@ find_handler_clause (handlers, conditions, sig, data)
     {
       if (!NILP (sig) && wants_debugger (Vstack_trace_on_error, conditions))
        {
+         max_lisp_eval_depth += 15;
          max_specpdl_size++;
-    #ifdef PROTOTYPES
+#ifdef PROTOTYPES
          internal_with_output_to_temp_buffer ("*Backtrace*",
                                               (Lisp_Object (*) (Lisp_Object)) Fbacktrace,
                                               Qnil);
-    #else
+#else
          internal_with_output_to_temp_buffer ("*Backtrace*",
                                               Fbacktrace, Qnil);
-    #endif
+#endif
          max_specpdl_size--;
+         max_lisp_eval_depth -= 15;
        }
 
       if (!debugger_considered)