From: Alan Mackenzie Date: Sun, 31 Jan 2021 17:24:23 +0000 (+0000) Subject: Minimise the time Vminibuffer_list is in an inconsistent state (src/minibuf.c) X-Git-Tag: emacs-28.0.90~4001 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=427d4b3c69f9d2fd8473189564dc1e96b27937ff;p=emacs.git 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. --- 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 {