aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorPaul Eggert2017-08-12 14:00:17 -0700
committerPaul Eggert2017-08-12 15:14:45 -0700
commita6ad98ad66e1d0c0dac5f25ba91e11d0cf9da725 (patch)
tree183748df6a5b71f1b48deecc824eef27939ff2f8 /src/buffer.c
parent9eb30cb03613ae158c870d603a05a6a6393dc485 (diff)
downloademacs-a6ad98ad66e1d0c0dac5f25ba91e11d0cf9da725.tar.gz
emacs-a6ad98ad66e1d0c0dac5f25ba91e11d0cf9da725.zip
Improve make-temp-file performance on local files
For the motivation behind this patch, please see Bug#28023 and: http://emacshorrors.com/posts/make-temp-name.html Although, given the recent changes to Tramp, the related security problem in make-temp-file is already fixed, make-temp-file still has several unnecessary system calls. In the typical case on GNU/Linux, this patch replaces 8 syscalls (symlink, open, close, readlinkat, uname, getpid, unlink, umask) by 2 (open, close). * admin/merge-gnulib (GNULIB_MODULES): Add tempname, now that Emacs is using it directly. * configure.ac (AUTO_DEPEND): Remove AC_SYS_LONG_FILE_NAMES; no longer needed. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lisp/files.el (files--make-magic-temp-file): Rename from make-temp-file. (make-temp-file): Use make-temp-file-internal for non-magic file names. * src/fileio.c: Include tempname.h. (make_temp_name_tbl, make_temp_name_count) (make_temp_name_count_initialized_p, make_temp_name): Remove. (Fmake_temp_file_internal): New function. (Fmake_temp_name): Use it. * src/filelock.c (get_boot_time): Use Fmake_temp_file_internal instead of make_temp_name.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 0d0f43e937b..2d508f35cf6 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1085,7 +1085,6 @@ is first appended to NAME, to speed up finding a non-existent buffer. */)
1085 genbase = name; 1085 genbase = name;
1086 else 1086 else
1087 { 1087 {
1088 /* Note fileio.c:make_temp_name does random differently. */
1089 char number[sizeof "-999999"]; 1088 char number[sizeof "-999999"];
1090 int i = XFASTINT (Frandom (make_number (999999))); 1089 int i = XFASTINT (Frandom (make_number (999999)));
1091 AUTO_STRING_WITH_LEN (lnumber, number, sprintf (number, "-%d", i)); 1090 AUTO_STRING_WITH_LEN (lnumber, number, sprintf (number, "-%d", i));