]> git.eshelyaron.com Git - emacs.git/commitdiff
Minimise the time Vminibuffer_list is in an inconsistent state (src/minibuf.c)
authorAlan Mackenzie <acm@muc.de>
Sun, 31 Jan 2021 17:24:23 +0000 (17:24 +0000)
committerAlan Mackenzie <acm@muc.de>
Sun, 31 Jan 2021 17:24:23 +0000 (17:24 +0000)
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.

src/minibuf.c

index 0221f388dda277010beb4d50f1eae4532fff87fa..949c3d989d55c3277ae2f1cec9e2485f3b968e99 100644 (file)
@@ -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
     {