[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r108863: * buffer.c (init_buffer_once
From: |
Dmitry Antipov |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r108863: * buffer.c (init_buffer_once): Fix initialization of |
Date: |
Wed, 04 Jul 2012 19:49:46 +0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 108863
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Wed 2012-07-04 19:49:46 +0400
message:
* buffer.c (init_buffer_once): Fix initialization of
headers for buffer_defaults and buffer_local_symbols.
Reported by Juanma Barranquero <address@hidden>.
modified:
src/ChangeLog
src/buffer.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-07-04 14:38:02 +0000
+++ b/src/ChangeLog 2012-07-04 15:49:46 +0000
@@ -1,3 +1,9 @@
+2012-07-04 Dmitry Antipov <address@hidden>
+
+ * buffer.c (init_buffer_once): Fix initialization of
+ headers for buffer_defaults and buffer_local_symbols.
+ Reported by Juanma Barranquero <address@hidden>.
+
2012-07-04 Stefan Monnier <address@hidden>
Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
=== modified file 'src/buffer.c'
--- a/src/buffer.c 2012-07-04 05:39:36 +0000
+++ b/src/buffer.c 2012-07-04 15:49:46 +0000
@@ -4870,6 +4870,12 @@
init_buffer_once (void)
{
int idx;
+ /* If you add, remove, or reorder Lisp_Objects in a struct buffer, make
+ sure that this is still correct. Otherwise, mark_vectorlike may not
+ trace all Lisp_Objects in buffer_defaults and buffer_local_symbols. */
+ const int pvecsize
+ = (offsetof (struct buffer, own_text) - sizeof (struct vectorlike_header))
+ / sizeof (Lisp_Object);
memset (buffer_permanent_local_flags, 0, sizeof
buffer_permanent_local_flags);
@@ -4886,9 +4892,9 @@
buffer_local_symbols.text = &buffer_local_symbols.own_text;
BUF_INTERVALS (&buffer_defaults) = 0;
BUF_INTERVALS (&buffer_local_symbols) = 0;
- XSETPVECTYPESIZE (&buffer_defaults, PVEC_BUFFER, 0);
+ XSETPVECTYPESIZE (&buffer_defaults, PVEC_BUFFER, pvecsize);
XSETBUFFER (Vbuffer_defaults, &buffer_defaults);
- XSETPVECTYPESIZE (&buffer_local_symbols, PVEC_BUFFER, 0);
+ XSETPVECTYPESIZE (&buffer_local_symbols, PVEC_BUFFER, pvecsize);
XSETBUFFER (Vbuffer_local_symbols, &buffer_local_symbols);
/* Set up the default values of various buffer slots. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r108863: * buffer.c (init_buffer_once): Fix initialization of,
Dmitry Antipov <=