]> git.eshelyaron.com Git - emacs.git/commit
Tune SAFE_FREE
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 28 Jun 2018 07:37:08 +0000 (00:37 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 28 Jun 2018 07:42:46 +0000 (00:42 -0700)
commit76eda952b09db6d79342b7ddfcae45c7c836ab62
treec1283adb00332f30c98e46da61e427057948aacc
parent79f6911bf1f6262c723f5a3602c2f80cbe63cf54
Tune SAFE_FREE

On my platform (Fedora 28 x86-64, AMD Phenom II X4 910e) this sped
up a SAFE_FREE-using microbenchmark (string-distance "abc" "abc")
by about 18%, and shrank the Emacs text size by about 0.1%.
* src/callint.c (Fcall_interactively):
* src/callproc.c (call_process):
* src/doc.c (get_doc_string, Fsnarf_documentation):
* src/editfns.c (Freplace_buffer_contents):
* src/emacs-module.c (funcall_module):
* src/eval.c (Flet):
* src/process.c (Fmake_process):
* src/term.c (tty_menu_show):
* src/xdisp.c (safe__call):
* src/xmenu.c (x_menu_show):
Use SAFE_FREE_UNBIND_TO.
* src/data.c (wrong_choice): No need to call SAFE_FREE here.
* src/lisp.h (USE_SAFE_ALLOCA):
* src/regex.c (REGEX_USE_SAFE_ALLOCA):
Do not declare sa_must_free local; no longer needed.
All uses removed.
(SAFE_FREE): Rewrite in terms of safe_free.
(safe_free): New function, optimized to use xfree.
(SAFE_FREE_UNBIND_TO): New macro.
(safe_free_unbind_to): New function.
13 files changed:
src/callint.c
src/callproc.c
src/data.c
src/doc.c
src/editfns.c
src/emacs-module.c
src/eval.c
src/lisp.h
src/process.c
src/regex.c
src/term.c
src/xdisp.c
src/xmenu.c