|
From: | Nikolay Kudryavtsev |
Subject: | Re: Unexec dumping results in "Segmentation fault" on Windows Msys2 |
Date: | Thu, 29 Apr 2021 22:17:10 +0300 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 |
I now know what's going on there.buffer.c/init_buffer has some unexec-specific code that remaps memory for the special buffers inherited from temacs. We fail at Fprin1_to_string which uses the " prin1" special buffer. cddf85d256 removed FOR_EACH_BUFFER macro and replaced it everywhere with the use of FOR_EACH_LIVE_BUFFER. Because FOR_EACH_LIVE_BUFFER does not iterate over the " prin1" buffer, it does not get its memory remapped and this breaks print functionality and elisp compilation, which depends on it.
FOR_EACH_BUFFER worked before due to buffer structure operating as a linked list and since it's kind of an ugly way of doing things, make sense why Stefan removed it. But I'm not if adding those special buffers to Vbuffer_alist(FOR_EACH_LIVE_BUFFER uses it) would not break anything.
[Prev in Thread] | Current Thread | [Next in Thread] |