aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding.c
diff options
context:
space:
mode:
authorPaul Eggert2018-06-29 17:07:38 -0700
committerPaul Eggert2018-06-29 17:07:57 -0700
commit2e2811865f0adb6658a87d3581a2dc3a9022f451 (patch)
tree286e80914dc979a45070be1929faad22a618eb7c /src/coding.c
parent08594a975a3d95b1c1eae38af608e487e2edfafc (diff)
downloademacs-2e2811865f0adb6658a87d3581a2dc3a9022f451.tar.gz
emacs-2e2811865f0adb6658a87d3581a2dc3a9022f451.zip
unbind_to performance tuning
* src/alloc.c (which_symbols): * src/dispnew.c (Fredisplay): * src/editfns.c (Fsubst_char_in_region): * src/fileio.c (Fdo_auto_save): * src/indent.c (Fvertical_motion): * src/keymap.c (Fcurrent_active_maps): * src/lread.c (Feval_buffer): * src/minibuf.c (get_minibuffer): * src/sysdep.c (system_process_attributes): * src/textprop.c (Fnext_single_char_property_change) (Fprevious_single_char_property_change): * src/window.c (Fscroll_other_window, Fscroll_other_window_down): * src/xdisp.c (Fformat_mode_line): Help the compiler eliminate tail recursion in call to unbind_to. * src/coding.c (decode_coding_gap): Omit unnecessary unbind_to, as we’re about to call unbind_to anyway. * src/coding.c (Fread_coding_system): * src/eval.c (eval_sub): * src/xdisp.c (handle_single_display_spec, decode_mode_spec): * src/xselect.c (x_get_local_selection): Avoid need to save a machine register when calling unbind_to. * src/minibuf.c (Ftry_completion, Fall_completions): Omit unnecessary assignment.
Diffstat (limited to 'src/coding.c')
-rw-r--r--src/coding.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/coding.c b/src/coding.c
index 32a9df1c533..8ce902b06d5 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -8005,7 +8005,6 @@ decode_coding_gap (struct coding_system *coding,
8005 ptrdiff_t prev_Z = Z, prev_Z_BYTE = Z_BYTE; 8005 ptrdiff_t prev_Z = Z, prev_Z_BYTE = Z_BYTE;
8006 Lisp_Object val; 8006 Lisp_Object val;
8007 Lisp_Object undo_list = BVAR (current_buffer, undo_list); 8007 Lisp_Object undo_list = BVAR (current_buffer, undo_list);
8008 ptrdiff_t count1 = SPECPDL_INDEX ();
8009 8008
8010 record_unwind_protect (coding_restore_undo_list, 8009 record_unwind_protect (coding_restore_undo_list,
8011 Fcons (undo_list, Fcurrent_buffer ())); 8010 Fcons (undo_list, Fcurrent_buffer ()));
@@ -8016,7 +8015,6 @@ decode_coding_gap (struct coding_system *coding,
8016 CHECK_NATNUM (val); 8015 CHECK_NATNUM (val);
8017 coding->produced_char += Z - prev_Z; 8016 coding->produced_char += Z - prev_Z;
8018 coding->produced += Z_BYTE - prev_Z_BYTE; 8017 coding->produced += Z_BYTE - prev_Z_BYTE;
8019 unbind_to (count1, Qnil);
8020 } 8018 }
8021 8019
8022 unbind_to (count, Qnil); 8020 unbind_to (count, Qnil);
@@ -8545,7 +8543,7 @@ are lower-case). */)
8545 val = Fcompleting_read (prompt, Vcoding_system_alist, Qnil, 8543 val = Fcompleting_read (prompt, Vcoding_system_alist, Qnil,
8546 Qt, Qnil, Qcoding_system_history, 8544 Qt, Qnil, Qcoding_system_history,
8547 default_coding_system, Qnil); 8545 default_coding_system, Qnil);
8548 unbind_to (count, Qnil); 8546 val = unbind_to (count, val);
8549 return (SCHARS (val) == 0 ? Qnil : Fintern (val, Qnil)); 8547 return (SCHARS (val) == 0 ? Qnil : Fintern (val, Qnil));
8550} 8548}
8551 8549