summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2021-01-31 17:24:23 +0000
committerAlan Mackenzie <acm@muc.de>2021-01-31 17:24:23 +0000
commit427d4b3c69f9d2fd8473189564dc1e96b27937ff (patch)
tree1d4fd7cbb5b3e14f983e91fec517cf9a82736a72
parent4b2203a07ebca62a012e0509ddd62451cb15a914 (diff)
downloademacs-427d4b3c69f9d2fd8473189564dc1e96b27937ff.tar.gz
Minimise the time Vminibuffer_list is in an inconsistent state (src/minibuf.c)
src/minibuf.c (get_minibuffer): Move the XSETCAR which writes the new minibuffer into Vminibuffer_list to immediately after the MB's creation, so that the list is in a consistent state before calling fundamental-mode or minibuffer-inactive-mode.
-rw-r--r--src/minibuf.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/minibuf.c b/src/minibuf.c
index 0221f388dda..949c3d989d5 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -971,12 +971,12 @@ get_minibuffer (EMACS_INT depth)
char name[sizeof name_fmt + INT_STRLEN_BOUND (EMACS_INT)];
AUTO_STRING_WITH_LEN (lname, name, sprintf (name, name_fmt, depth));
buf = Fget_buffer_create (lname, Qnil);
+ /* Do this before set_minibuffer_mode. */
+ XSETCAR (tail, buf);
set_minibuffer_mode (buf, depth);
/* Although the buffer's name starts with a space, undo should be
enabled in it. */
Fbuffer_enable_undo (buf);
-
- XSETCAR (tail, buf);
}
else
{