summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/buffer.c21
2 files changed, 16 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f82a6a298ae..a89d14bbe23 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-17 Fabrice Popineau <fabrice.popineau@gmail.com>
+
+ * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Always map new
+ memory for every buffer that was dumped.
+
2014-05-15 Dmitry Antipov <dmantipov@yandex.ru>
* fns.c (Freverse): Allow vectors, bool vectors and strings.
diff --git a/src/buffer.c b/src/buffer.c
index a1142479d04..1f0bd3f0970 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*")));