Commit 575593db authored by Dmitry Antipov's avatar Dmitry Antipov
Browse files

* eval.c (call_debugger): When exiting the debugger, do not allow

max_specpdl_size less than actual binding depth (Bug#16603).
(syms_of_eval): Adjust docstring.
parent 2b44e458
......@@ -8,6 +8,9 @@
* cmds.c (Fself_insert_command): Respect the width of EMACS_INT
and avoid warning.
* eval.c (call_debugger): When exiting the debugger, do not allow
max_specpdl_size less than actual binding depth (Bug#16603).
(syms_of_eval): Adjust docstring.
2014-02-09 Lars Ingebrigtsen <larsi@gnus.org>
......
......@@ -283,7 +283,9 @@ call_debugger (Lisp_Object arg)
bool debug_while_redisplaying;
ptrdiff_t count = SPECPDL_INDEX ();
Lisp_Object val;
EMACS_INT old_max = max_specpdl_size, old_depth = max_lisp_eval_depth;
EMACS_INT old_depth = max_lisp_eval_depth;
/* Do not allow max_specpdl_size less than actual depth (Bug#16603). */
EMACS_INT old_max = max (max_specpdl_size, count);
if (lisp_eval_depth + 40 > max_lisp_eval_depth)
max_lisp_eval_depth = lisp_eval_depth + 40;
......@@ -3721,7 +3723,9 @@ If Lisp code tries to increase the total number past this amount,
an error is signaled.
You can safely use a value considerably larger than the default value,
if that proves inconveniently small. However, if you increase it too far,
Emacs could run out of memory trying to make the stack bigger. */);
Emacs could run out of memory trying to make the stack bigger.
Note that this limit may be silently increased by the debugger
if `debug-on-error' or `debug-on-quit' is set. */);
DEFVAR_INT ("max-lisp-eval-depth", max_lisp_eval_depth,
doc: /* Limit on depth in `eval', `apply' and `funcall' before error.
......
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