mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-12 22:40:46 -08:00
(defvar_per_buffer): Access buffer_local_flags as Lisp_Object, not int.
Give XSETBUFFER_OBJFWD an integer offset, not a pointer.
This commit is contained in:
parent
aab808227e
commit
2836d9a4dc
1 changed files with 4 additions and 4 deletions
|
|
@ -1826,7 +1826,8 @@ defvar_lisp_nopro (namestring, address)
|
|||
#ifndef standalone
|
||||
|
||||
/* Similar but define a variable whose value is the Lisp Object stored in
|
||||
the current buffer. address is the address of the slot in the buffer that is current now. */
|
||||
the current buffer. address is the address of the slot in the buffer
|
||||
that is current now. */
|
||||
|
||||
void
|
||||
defvar_per_buffer (namestring, address, type, doc)
|
||||
|
|
@ -1842,11 +1843,10 @@ defvar_per_buffer (namestring, address, type, doc)
|
|||
sym = intern (namestring);
|
||||
offset = (char *)address - (char *)current_buffer;
|
||||
|
||||
XSETBUFFER_OBJFWD (XSYMBOL (sym)->value,
|
||||
(Lisp_Object *) offset);
|
||||
XSETBUFFER_OBJFWD (XSYMBOL (sym)->value, offset);
|
||||
*(Lisp_Object *)(offset + (char *)&buffer_local_symbols) = sym;
|
||||
*(Lisp_Object *)(offset + (char *)&buffer_local_types) = type;
|
||||
if (*(int *)(offset + (char *)&buffer_local_flags) == 0)
|
||||
if (XINT (*(Lisp_Object *)(offset + (char *)&buffer_local_flags)) == 0)
|
||||
/* Did a DEFVAR_PER_BUFFER without initializing the corresponding
|
||||
slot of buffer_local_flags */
|
||||
abort ();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue