diff options
author | Eli Zaretskii <eliz@gnu.org> | 2018-06-29 16:55:20 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2018-06-29 16:55:20 +0300 |
commit | eec71ebdb50c3110bb747db57c7d7f04b6d14ad1 (patch) | |
tree | 78f81836140a0b47e8875e86623c1a091291110e /lisp/emacs-lisp/inline.el | |
parent | 93c41ce6aa64b14fc9bd7bdd0d909915a79191cd (diff) | |
download | emacs-eec71ebdb50c3110bb747db57c7d7f04b6d14ad1.tar.gz emacs-eec71ebdb50c3110bb747db57c7d7f04b6d14ad1.tar.bz2 emacs-eec71ebdb50c3110bb747db57c7d7f04b6d14ad1.zip |
Speed up replace-buffer-contents
* src/editfns.c (EXTRA_CONTEXT_FIELDS): Add a_unibyte and
b_unibyte members.
(rbc_quitcounter): New static variable.
(Freplace_buffer_contents): Initialize a_unibyte, b_unibyte, and
rbc_quitcounter. Inhibit modification hooks if they were not
already inhibited. Use rarely_quit to allow user to quit, to
avoid calling maybe_quit too frequently (which hurts performance).
Remove redundant assertions (which hurt performance too much).
Call signal_after_change and update_compositions after all the
changes are done.
(buffer_chars_equal): Remove redundant assertions (which hurt
performance). Avoid using BUF_FETCH_CHAR_AS_MULTIBYTE, which
hurts performance by referencing Lisp symbols; instead, use
lower-level macros with explicit tests to select which macro to
use. (Bug#31888)
Diffstat (limited to 'lisp/emacs-lisp/inline.el')
0 files changed, 0 insertions, 0 deletions