From ab75b3f79d18f3d12fa4c01de254b59cb7a3ddba Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 15 Nov 2009 05:44:54 +0100 Subject: [PATCH] Define and use SET_PER_BUFFER_VALUE_RAW --- src/buffer.c | 4 ++-- src/buffer.h | 5 ++++- src/data.c | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/buffer.c b/src/buffer.c index 648ae1d004f..0b899f250d4 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -517,7 +517,7 @@ clone_per_buffer_values (from, to) set_marker_both (obj, to_buffer, m->charpos, m->bytepos); } - PER_BUFFER_VALUE (to, offset) = obj; + SET_PER_BUFFER_VALUE_RAW (to, offset, obj); } bcopy (from->local_flags, to->local_flags, sizeof to->local_flags); @@ -826,7 +826,7 @@ reset_buffer_local_variables (b, permanent_too) || buffer_permanent_local_flags[idx] == 0)) /* Is -2 used anywhere? */ || idx == -2) - PER_BUFFER_VALUE (b, offset) = PER_BUFFER_DEFAULT (offset); + SET_PER_BUFFER_VALUE_RAW (b, offset, PER_BUFFER_DEFAULT (offset)); } } diff --git a/src/buffer.h b/src/buffer.h index 28e344a4071..a61a349a055 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1066,7 +1066,10 @@ extern int last_per_buffer_idx; OFFSET in the buffer structure. */ #define PER_BUFFER_VALUE(BUFFER, OFFSET) \ - (*(Lisp_Object *)((OFFSET) + (char *) (BUFFER))) + (*find_variable_location ((Lisp_Object *)((OFFSET) + (char *) (BUFFER)))) + +#define SET_PER_BUFFER_VALUE_RAW(BUFFER, OFFSET, VALUE) \ + ((*((Lisp_Object *)((OFFSET) + (char *) (BUFFER)))) = (VALUE)) /* Return the symbol of the per-buffer variable at offset OFFSET in the buffer structure. */ diff --git a/src/data.c b/src/data.c index 9eabf68ca6b..da74750952a 100644 --- a/src/data.c +++ b/src/data.c @@ -1033,7 +1033,7 @@ store_symval_forwarding (symbol, valcontents, newval, buf) b = XBUFFER (buf); if (! PER_BUFFER_VALUE_P (b, idx)) - PER_BUFFER_VALUE (b, offset) = newval; + SET_PER_BUFFER_VALUE_RAW (b, offset, newval); } } break; -- 2.39.5