+2000-01-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
+
+ * data.c (set_internal): Fix the criteria for whether
+ to swap out the old cached binding.
+
2000-01-19 Dave Love <fx@gnu.org>
* lread.c: (syms_of_lread) [user-init-file]: Doc change.
currently cached, or if it's a Lisp_Buffer_Local_Value and
we're looking at the default value, the cache is invalid; we
need to write it out, and find the new CURRENT-ALIST-ELEMENT. */
- if (buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer)
- || !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)
- || (BUFFER_LOCAL_VALUEP (valcontents)
- && EQ (XCAR (current_alist_element),
- current_alist_element)))
+ if ((XBUFFER_LOCAL_VALUE (valcontents)->found_for_buffer
+ && (buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer)
+ || (BUFFER_LOCAL_VALUEP (valcontents)
+ && EQ (XCAR (current_alist_element),
+ current_alist_element))))
+ ||
+ (XBUFFER_LOCAL_VALUE (valcontents)->found_for_frame
+ && !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)))
{
/* Write out the cached value for the old buffer; copy it
back to its alist element. This works if the current