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 | |
| 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')
| -rw-r--r-- | src/ChangeLog | 30 | ||||
| -rw-r--r-- | src/coding.c | 2 | ||||
| -rw-r--r-- | src/coding.h | 2 | ||||
| -rw-r--r-- | src/eval.c | 12 | ||||
| -rw-r--r-- | src/lisp.h | 11 |
5 files changed, 34 insertions, 23 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index a707eaae9eb..98f0d46b4c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2011-12-04 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | Don't macro-inline non-performance-critical code. | ||
| 4 | * eval.c (process_quit_flag): New function. | ||
| 5 | * lisp.h (QUIT): Use it. | ||
| 6 | |||
| 1 | 2011-12-04 Jan Djärv <jan.h.d@swipnet.se> | 7 | 2011-12-04 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 8 | ||
| 3 | * nsfns.m (get_geometry_from_preferences): New function. | 9 | * nsfns.m (get_geometry_from_preferences): New function. |
| @@ -9,8 +15,8 @@ | |||
| 9 | (syms_of_emacs): Initialize it. | 15 | (syms_of_emacs): Initialize it. |
| 10 | * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set | 16 | * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set |
| 11 | Qquit_flag to `kill-emacs' instead. | 17 | Qquit_flag to `kill-emacs' instead. |
| 12 | (quit_throw_to_read_char): Add parameter `from_signal'. All | 18 | (quit_throw_to_read_char): Add parameter `from_signal'. |
| 13 | callers changed. Call Fkill_emacs if requested and safe. | 19 | All callers changed. Call Fkill_emacs if requested and safe. |
| 14 | * lisp.h (QUIT): Call Fkill_emacs if requested. | 20 | * lisp.h (QUIT): Call Fkill_emacs if requested. |
| 15 | 21 | ||
| 16 | 2011-12-03 Jan Djärv <jan.h.d@swipnet.se> | 22 | 2011-12-03 Jan Djärv <jan.h.d@swipnet.se> |
| @@ -110,8 +116,8 @@ | |||
| 110 | 116 | ||
| 111 | 2011-11-27 Jan Djärv <jan.h.d@swipnet.se> | 117 | 2011-11-27 Jan Djärv <jan.h.d@swipnet.se> |
| 112 | 118 | ||
| 113 | * gtkutil.c (xg_create_frame_widgets): Call | 119 | * gtkutil.c (xg_create_frame_widgets): |
| 114 | gtk_window_set_has_resize_grip (FALSE) if that function is | 120 | Call gtk_window_set_has_resize_grip (FALSE) if that function is |
| 115 | present with Gtk+ 2.0. | 121 | present with Gtk+ 2.0. |
| 116 | 122 | ||
| 117 | 2011-11-26 Paul Eggert <eggert@cs.ucla.edu> | 123 | 2011-11-26 Paul Eggert <eggert@cs.ucla.edu> |
| @@ -318,8 +324,8 @@ | |||
| 318 | * xdisp.c (display_line): Move the call to | 324 | * xdisp.c (display_line): Move the call to |
| 319 | highlight_trailing_whitespace before the call to | 325 | highlight_trailing_whitespace before the call to |
| 320 | compute_line_metrics, since the latter needs to see the final | 326 | compute_line_metrics, since the latter needs to see the final |
| 321 | faces of all the glyphs to compute ROW's hash value. Fixes | 327 | faces of all the glyphs to compute ROW's hash value. |
| 322 | assertion violations in row_equal_p. (Bug#10035) | 328 | Fixes assertion violations in row_equal_p. (Bug#10035) |
| 323 | 329 | ||
| 324 | 2011-11-14 Juanma Barranquero <lekktu@gmail.com> | 330 | 2011-11-14 Juanma Barranquero <lekktu@gmail.com> |
| 325 | 331 | ||
| @@ -403,8 +409,8 @@ | |||
| 403 | 2011-11-08 Chong Yidong <cyd@gnu.org> | 409 | 2011-11-08 Chong Yidong <cyd@gnu.org> |
| 404 | 410 | ||
| 405 | * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix. | 411 | * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix. |
| 406 | (Fwindow_body_height, Fwindow_body_width): Move from Lisp. Signal | 412 | (Fwindow_body_height, Fwindow_body_width): Move from Lisp. |
| 407 | an error if not a live window. | 413 | Signal an error if not a live window. |
| 408 | (Fwindow_total_width, Fwindow_total_height): Move from Lisp. | 414 | (Fwindow_total_width, Fwindow_total_height): Move from Lisp. |
| 409 | (Fwindow_total_size, Fwindow_body_size): Move to Lisp. | 415 | (Fwindow_total_size, Fwindow_body_size): Move to Lisp. |
| 410 | 416 | ||
| @@ -536,8 +542,8 @@ | |||
| 536 | (x_destroy_window): Move code to x_free_frame_resources. | 542 | (x_destroy_window): Move code to x_free_frame_resources. |
| 537 | 543 | ||
| 538 | * xfns.c (unwind_create_frame): Fix comment. | 544 | * xfns.c (unwind_create_frame): Fix comment. |
| 539 | (Fx_create_frame, x_create_tip_frame): Move | 545 | (Fx_create_frame, x_create_tip_frame): |
| 540 | terminal->reference_count++ just before making the frame | 546 | Move terminal->reference_count++ just before making the frame |
| 541 | official. Move initialization of image_cache_refcount and | 547 | official. Move initialization of image_cache_refcount and |
| 542 | dpyinfo_refcount before calling init_frame_faces (Bug#9943). | 548 | dpyinfo_refcount before calling init_frame_faces (Bug#9943). |
| 543 | 549 | ||
| @@ -607,8 +613,8 @@ | |||
| 607 | * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment. | 613 | * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment. |
| 608 | Don't stop backward scan on the continuation glyph, even though | 614 | Don't stop backward scan on the continuation glyph, even though |
| 609 | its CHARPOS is positive. | 615 | its CHARPOS is positive. |
| 610 | (mouse_face_from_buffer_pos, note_mouse_highlight): Rename | 616 | (mouse_face_from_buffer_pos, note_mouse_highlight): |
| 611 | cover_string to disp_string. | 617 | Rename cover_string to disp_string. |
| 612 | 618 | ||
| 613 | 2011-11-01 Martin Rudalics <rudalics@gmx.at> | 619 | 2011-11-01 Martin Rudalics <rudalics@gmx.at> |
| 614 | 620 | ||
diff --git a/src/coding.c b/src/coding.c index 79908e9b29b..f3506da7358 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -9208,7 +9208,7 @@ frame's terminal device. */) | |||
| 9208 | = TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1)); | 9208 | = TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1)); |
| 9209 | Lisp_Object coding_system = CODING_ID_NAME (terminal_coding->id); | 9209 | Lisp_Object coding_system = CODING_ID_NAME (terminal_coding->id); |
| 9210 | 9210 | ||
| 9211 | /* For backward compatibility, return nil if it is `undecided'. */ | 9211 | /* For backward compatibility, return nil if it is `undecided'. */ |
| 9212 | return (! EQ (coding_system, Qundecided) ? coding_system : Qnil); | 9212 | return (! EQ (coding_system, Qundecided) ? coding_system : Qnil); |
| 9213 | } | 9213 | } |
| 9214 | 9214 | ||
diff --git a/src/coding.h b/src/coding.h index 2621928adc3..b694e6c6b6e 100644 --- a/src/coding.h +++ b/src/coding.h | |||
| @@ -457,7 +457,7 @@ struct coding_system | |||
| 457 | /* Number of error source data found in a decoding routine. */ | 457 | /* Number of error source data found in a decoding routine. */ |
| 458 | int errors; | 458 | int errors; |
| 459 | 459 | ||
| 460 | /* Store the positions of error source data. */ | 460 | /* Store the positions of error source data. */ |
| 461 | EMACS_INT *error_positions; | 461 | EMACS_INT *error_positions; |
| 462 | 462 | ||
| 463 | /* Finish status of code conversion. */ | 463 | /* Finish status of code conversion. */ |
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. |
diff --git a/src/lisp.h b/src/lisp.h index 969923b7cfb..f43533e0b6e 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2143,18 +2143,11 @@ extern int pending_signals; | |||
| 2143 | #define ELSE_PENDING_SIGNALS | 2143 | #define ELSE_PENDING_SIGNALS |
| 2144 | #endif /* not SYNC_INPUT */ | 2144 | #endif /* not SYNC_INPUT */ |
| 2145 | 2145 | ||
| 2146 | extern void handle_quit_flag (void); | ||
| 2146 | #define QUIT \ | 2147 | #define QUIT \ |
| 2147 | do { \ | 2148 | do { \ |
| 2148 | if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ | 2149 | if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ |
| 2149 | { \ | 2150 | process_quit_flag (); \ |
| 2150 | Lisp_Object flag = Vquit_flag; \ | ||
| 2151 | Vquit_flag = Qnil; \ | ||
| 2152 | if (EQ (flag, Qkill_emacs)) \ | ||
| 2153 | Fkill_emacs (Qnil); \ | ||
| 2154 | if (EQ (Vthrow_on_input, flag)) \ | ||
| 2155 | Fthrow (Vthrow_on_input, Qt); \ | ||
| 2156 | Fsignal (Qquit, Qnil); \ | ||
| 2157 | } \ | ||
| 2158 | ELSE_PENDING_SIGNALS \ | 2151 | ELSE_PENDING_SIGNALS \ |
| 2159 | } while (0) | 2152 | } while (0) |
| 2160 | 2153 | ||