]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix the unexec build on MS-Windows
authorEli Zaretskii <eliz@gnu.org>
Fri, 30 Apr 2021 11:22:29 +0000 (14:22 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 30 Apr 2021 11:22:29 +0000 (14:22 +0300)
* src/buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: If dumped
with unexec, be sure to map new memory also for the " prin1"
buffer.  For the reasons and discussion, see
https://lists.gnu.org/archive/html/emacs-devel/2021-04/msg01401.html.

src/buffer.c

index 8e33162989b9631690483d843226ccd221c39981..9e417bf555c2ee401db1ac05ced5a7cee47034ae 100644 (file)
@@ -5390,17 +5390,24 @@ init_buffer (void)
         recorded by temacs, that cannot be used by the dumped Emacs.
         We map new memory for their text here.
 
-        Implementation note: the buffers we carry from temacs are:
+        Implementation notes: the buffers we carry from temacs are:
         " prin1", "*scratch*", " *Minibuf-0*", "*Messages*", and
         " *code-conversion-work*".  They are created by
         init_buffer_once and init_window_once (which are not called
-        in the dumped Emacs), and by the first call to coding.c routines.  */
+        in the dumped Emacs), and by the first call to coding.c
+        routines.  Since FOR_EACH_LIVE_BUFFER only walks the buffers
+        in Vbuffer_alist, any buffer we carry from temacs that is
+        not in the alist (a.k.a. "magic invisible buffers") should
+        be handled here explicitly.  */
       FOR_EACH_LIVE_BUFFER (tail, buffer)
         {
          struct buffer *b = XBUFFER (buffer);
          b->text->beg = NULL;
          enlarge_buffer_text (b, 0);
        }
+      /* The " prin1" buffer is not in Vbuffer_alist.  */
+      XBUFFER (Vprin1_to_string_buffer)->text->beg = NULL;
+      enlarge_buffer_text (XBUFFER (Vprin1_to_string_buffer), 0);
     }
 #endif /* USE_MMAP_FOR_BUFFERS */