diff options
| author | Stefan Monnier | 2011-12-04 10:46:07 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2011-12-04 10:46:07 -0500 |
| commit | 6d5eb5b0d2e50b0dd153a988cc52492cb77fc333 (patch) | |
| tree | a2dbd96b6b9a3cd154a98bb0b1981203cd5e1e5b /src/eval.c | |
| parent | a0c3fad023c0b5812db38d2f1bd41998d7c001b1 (diff) | |
| download | emacs-6d5eb5b0d2e50b0dd153a988cc52492cb77fc333.tar.gz emacs-6d5eb5b0d2e50b0dd153a988cc52492cb77fc333.zip | |
Don't macro-inline non-performance-critical code.
* src/eval.c (process_quit_flag): New function.
* src/lisp.h (QUIT): Use it.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 9b9beabc7c1..079c7ecb6c2 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1629,6 +1629,18 @@ static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object); | |||
| 1629 | static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, | 1629 | static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, |
| 1630 | Lisp_Object data); | 1630 | Lisp_Object data); |
| 1631 | 1631 | ||
| 1632 | void | ||
| 1633 | process_quit_flag (void) | ||
| 1634 | { | ||
| 1635 | Lisp_Object flag = Vquit_flag; | ||
| 1636 | Vquit_flag = Qnil; | ||
| 1637 | if (EQ (flag, Qkill_emacs)) | ||
| 1638 | Fkill_emacs (Qnil); | ||
| 1639 | if (EQ (Vthrow_on_input, flag)) | ||
| 1640 | Fthrow (Vthrow_on_input, Qt); | ||
| 1641 | Fsignal (Qquit, Qnil); | ||
| 1642 | } | ||
| 1643 | |||
| 1632 | DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0, | 1644 | DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0, |
| 1633 | doc: /* Signal an error. Args are ERROR-SYMBOL and associated DATA. | 1645 | doc: /* Signal an error. Args are ERROR-SYMBOL and associated DATA. |
| 1634 | This function does not return. | 1646 | This function does not return. |