aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/src/eval.c b/src/eval.c
index cb8b4f3ea07..e8a3f947f9d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1640,8 +1640,7 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
1640} 1640}
1641 1641
1642 1642
1643static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object, 1643static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object);
1644 Lisp_Object, Lisp_Object);
1645static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, 1644static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig,
1646 Lisp_Object data); 1645 Lisp_Object data);
1647 1646
@@ -1717,8 +1716,7 @@ See also the function `condition-case'. */)
1717 1716
1718 for (h = handlerlist; h; h = h->next) 1717 for (h = handlerlist; h; h = h->next)
1719 { 1718 {
1720 clause = find_handler_clause (h->handler, conditions, 1719 clause = find_handler_clause (h->handler, conditions);
1721 error_symbol, data);
1722 if (!NILP (clause)) 1720 if (!NILP (clause))
1723 break; 1721 break;
1724 } 1722 }
@@ -1889,8 +1887,10 @@ skip_debugger (Lisp_Object conditions, Lisp_Object data)
1889} 1887}
1890 1888
1891/* Call the debugger if calling it is currently enabled for CONDITIONS. 1889/* Call the debugger if calling it is currently enabled for CONDITIONS.
1892 SIG and DATA describe the signal, as in find_handler_clause. */ 1890 SIG and DATA describe the signal. There are two ways to pass them:
1893 1891 = SIG is the error symbol, and DATA is the rest of the data.
1892 = SIG is nil, and DATA is (SYMBOL . REST-OF-DATA).
1893 This is for memory-full errors only. */
1894static int 1894static int
1895maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data) 1895maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
1896{ 1896{
@@ -1917,19 +1917,8 @@ maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
1917 return 0; 1917 return 0;
1918} 1918}
1919 1919
1920/* Value of Qlambda means we have called debugger and user has continued.
1921 There are two ways to pass SIG and DATA:
1922 = SIG is the error symbol, and DATA is the rest of the data.
1923 = SIG is nil, and DATA is (SYMBOL . REST-OF-DATA).
1924 This is for memory-full errors only.
1925
1926 We need to increase max_specpdl_size temporarily around
1927 anything we do that can push on the specpdl, so as not to get
1928 a second error here in case we're handling specpdl overflow. */
1929
1930static Lisp_Object 1920static Lisp_Object
1931find_handler_clause (Lisp_Object handlers, Lisp_Object conditions, 1921find_handler_clause (Lisp_Object handlers, Lisp_Object conditions)
1932 Lisp_Object sig, Lisp_Object data)
1933{ 1922{
1934 register Lisp_Object h; 1923 register Lisp_Object h;
1935 1924