emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master ab7a61e: Fix the unexec build on MS-Windows


From: Eli Zaretskii
Subject: master ab7a61e: Fix the unexec build on MS-Windows
Date: Fri, 30 Apr 2021 07:23:38 -0400 (EDT)

branch: master
commit ab7a61e0efd0684bc37a556d12f36521f9f61782
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Fix the unexec build on MS-Windows
    
    * 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 | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/buffer.c b/src/buffer.c
index 8e33162..9e417bf 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -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 */
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]