From 2836d9a4dcefd35ab080b5c1714b7bbfdf5eaa57 Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Thu, 6 Oct 1994 22:31:59 +0000 Subject: [PATCH] (defvar_per_buffer): Access buffer_local_flags as Lisp_Object, not int. Give XSETBUFFER_OBJFWD an integer offset, not a pointer. --- src/lread.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lread.c b/src/lread.c index fbe6366534e..e29d46dccdb 100644 --- a/src/lread.c +++ b/src/lread.c @@ -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 ();