Mercurial > emacs
changeset 27371:77048c4b6fb0
(set_internal): Fix the criteria for whether
to swap out the old cached binding.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 20 Jan 2000 06:01:48 +0000 |
parents | 70846ee19545 |
children | 79d08dbee5fd |
files | src/data.c |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/data.c Wed Jan 19 19:54:36 2000 +0000 +++ b/src/data.c Thu Jan 20 06:01:48 2000 +0000 @@ -1043,11 +1043,14 @@ 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