Merge: Remove unportable assumption about struct layout (Bug#8884).
* buffer.c (clone_per_buffer_values): Don't assume that sizeof (struct buffer) is a multiple of sizeof (Lisp_Object). This isn't true in general, and it's particularly not true if Emacs is configured with --with-wide-int. * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): New macros, used in the buffer.c change.
This commit is contained in:
commit
437dd18bf1
3 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,13 @@
|
|||
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Remove unportable assumption about struct layout (Bug#8884).
|
||||
* buffer.c (clone_per_buffer_values): Don't assume that
|
||||
sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
|
||||
This isn't true in general, and it's particularly not true
|
||||
if Emacs is configured with --with-wide-int.
|
||||
* buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
|
||||
New macros, used in the buffer.c change.
|
||||
|
||||
2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* xsettings.c: Use both GConf and GSettings if both are available.
|
||||
|
|
|
@ -471,8 +471,8 @@ clone_per_buffer_values (struct buffer *from, struct buffer *to)
|
|||
|
||||
/* buffer-local Lisp variables start at `undo_list',
|
||||
tho only the ones from `name' on are GC'd normally. */
|
||||
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
|
||||
offset < sizeof *to;
|
||||
for (offset = PER_BUFFER_VAR_OFFSET (FIRST_FIELD_PER_BUFFER);
|
||||
offset <= PER_BUFFER_VAR_OFFSET (LAST_FIELD_PER_BUFFER);
|
||||
offset += sizeof (Lisp_Object))
|
||||
{
|
||||
Lisp_Object obj;
|
||||
|
|
|
@ -612,6 +612,7 @@ struct buffer
|
|||
/* Everything from here down must be a Lisp_Object. */
|
||||
/* buffer-local Lisp variables start at `undo_list',
|
||||
tho only the ones from `name' on are GC'd normally. */
|
||||
#define FIRST_FIELD_PER_BUFFER undo_list
|
||||
|
||||
/* Changes in the buffer are recorded here for undo.
|
||||
t means don't record anything.
|
||||
|
@ -846,6 +847,9 @@ struct buffer
|
|||
t means to use hollow box cursor.
|
||||
See `cursor-type' for other values. */
|
||||
Lisp_Object BUFFER_INTERNAL_FIELD (cursor_in_non_selected_windows);
|
||||
|
||||
/* This must be the last field in the above list. */
|
||||
#define LAST_FIELD_PER_BUFFER cursor_in_non_selected_windows
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue