aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman2002-07-12 11:16:42 +0000
committerRichard M. Stallman2002-07-12 11:16:42 +0000
commit26631f2b58f96dfa01644457743efca2297e391e (patch)
tree4daa549cabb38481d00053ab4b7f1ad0ac4e3efa /src
parent20505336e1666c028d34ba1a5ad43182bfc94330 (diff)
downloademacs-26631f2b58f96dfa01644457743efca2297e391e.tar.gz
emacs-26631f2b58f96dfa01644457743efca2297e391e.zip
(Fsignal): Don't call cancel_hourglass.
For a memory-full error, don't call Vsignal_hook_function and don't set Vsignaling_function.
Diffstat (limited to 'src')
-rw-r--r--src/eval.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/eval.c b/src/eval.c
index 8dd2d734e10..4381901c896 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1453,7 +1453,8 @@ See also the function `condition-case'. */)
1453 Lisp_Object error_symbol, data; 1453 Lisp_Object error_symbol, data;
1454{ 1454{
1455 /* When memory is full, ERROR-SYMBOL is nil, 1455 /* When memory is full, ERROR-SYMBOL is nil,
1456 and DATA is (REAL-ERROR-SYMBOL . REAL-DATA). */ 1456 and DATA is (REAL-ERROR-SYMBOL . REAL-DATA).
1457 That is a special case--don't do this in other situations. */
1457 register struct handler *allhandlers = handlerlist; 1458 register struct handler *allhandlers = handlerlist;
1458 Lisp_Object conditions; 1459 Lisp_Object conditions;
1459 extern int gc_in_progress; 1460 extern int gc_in_progress;
@@ -1474,22 +1475,27 @@ See also the function `condition-case'. */)
1474 else 1475 else
1475 real_error_symbol = error_symbol; 1476 real_error_symbol = error_symbol;
1476 1477
1478#if 0 /* rms: I don't know why this was here,
1479 but it is surely wrong for an error that is handled. */
1477#ifdef HAVE_X_WINDOWS 1480#ifdef HAVE_X_WINDOWS
1478 if (display_hourglass_p) 1481 if (display_hourglass_p)
1479 cancel_hourglass (); 1482 cancel_hourglass ();
1480#endif 1483#endif
1484#endif
1481 1485
1482 /* This hook is used by edebug. */ 1486 /* This hook is used by edebug. */
1483 if (! NILP (Vsignal_hook_function)) 1487 if (! NILP (Vsignal_hook_function)
1488 && ! NILP (error_symbol))
1484 call2 (Vsignal_hook_function, error_symbol, data); 1489 call2 (Vsignal_hook_function, error_symbol, data);
1485 1490
1486 conditions = Fget (real_error_symbol, Qerror_conditions); 1491 conditions = Fget (real_error_symbol, Qerror_conditions);
1487 1492
1488 /* Remember from where signal was called. Skip over the frame for 1493 /* Remember from where signal was called. Skip over the frame for
1489 `signal' itself. If a frame for `error' follows, skip that, 1494 `signal' itself. If a frame for `error' follows, skip that,
1490 too. */ 1495 too. Don't do this when ERROR_SYMBOL is nil, because that
1496 is a memory-full error. */
1491 Vsignaling_function = Qnil; 1497 Vsignaling_function = Qnil;
1492 if (backtrace_list) 1498 if (backtrace_list && !NILP (error_symbol))
1493 { 1499 {
1494 bp = backtrace_list->next; 1500 bp = backtrace_list->next;
1495 if (bp && bp->function && EQ (*bp->function, Qerror)) 1501 if (bp && bp->function && EQ (*bp->function, Qerror))
@@ -1511,13 +1517,6 @@ See also the function `condition-case'. */)
1511 clause = find_handler_clause (handlerlist->handler, conditions, 1517 clause = find_handler_clause (handlerlist->handler, conditions,
1512 error_symbol, data, &debugger_value); 1518 error_symbol, data, &debugger_value);
1513 1519
1514#if 0 /* Most callers are not prepared to handle gc if this returns.
1515 So, since this feature is not very useful, take it out. */
1516 /* If have called debugger and user wants to continue,
1517 just return nil. */
1518 if (EQ (clause, Qlambda))
1519 return debugger_value;
1520#else
1521 if (EQ (clause, Qlambda)) 1520 if (EQ (clause, Qlambda))
1522 { 1521 {
1523 /* We can't return values to code which signaled an error, but we 1522 /* We can't return values to code which signaled an error, but we
@@ -1527,7 +1526,6 @@ See also the function `condition-case'. */)
1527 else 1526 else
1528 error ("Cannot return from the debugger in an error"); 1527 error ("Cannot return from the debugger in an error");
1529 } 1528 }
1530#endif
1531 1529
1532 if (!NILP (clause)) 1530 if (!NILP (clause))
1533 { 1531 {