diff --git a/src/ChangeLog b/src/ChangeLog index f82a6a298ae677978d89f67dc806e1ca3a359df7..a89d14bbe23b1ffb60df8a316b2c575e9b13c037 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-05-17 Fabrice Popineau + + * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Always map new + memory for every buffer that was dumped. + 2014-05-15 Dmitry Antipov * fns.c (Freverse): Allow vectors, bool vectors and strings. diff --git a/src/buffer.c b/src/buffer.c index a1142479d046737f77ee89ab457e396a3415a56d..1f0bd3f0970b735d6ee8f439604b21b284a19fb9 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5336,16 +5336,17 @@ init_buffer (void) ptrdiff_t len; #ifdef USE_MMAP_FOR_BUFFERS - { - /* When using the ralloc implementation based on mmap(2), buffer - text pointers will have been set to null in the dumped Emacs. - Map new memory. */ - struct buffer *b; - - FOR_EACH_BUFFER (b) - if (b->text->beg == NULL) - enlarge_buffer_text (b, 0); - } + { + struct buffer *b; + + /* We cannot dump buffers with meaningful addresses that can be + used by the dumped Emacs. We map new memory for them here. */ + FOR_EACH_BUFFER (b) + { + b->text->beg = NULL; + enlarge_buffer_text (b, 0); + } + } #endif /* USE_MMAP_FOR_BUFFERS */ Fset_buffer (Fget_buffer_create (build_string ("*scratch*")));