Commit 52eb77a6 authored by Chong Yidong's avatar Chong Yidong

Avoid recording dead buffers in buffer-list frame param (Bug#7898).

* src/frame.c (store_frame_param): Don't store value directly in
buffer_list and buried_buffer_list; copy the list and remove dead
buffers.
parent b923f7a9
2011-02-27 Chong Yidong <cyd@stupidchicken.com>
* frame.c (store_frame_param): Don't store value directly in
buffer_list and buried_buffer_list; copy the list and remove dead
buffers (Bug#7898).
2011-02-27 Eli Zaretskii <eliz@gnu.org>
* msdos.c (readlink) [DJGPP < 2.04]: New stub function.
......@@ -2208,15 +2208,23 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
register Lisp_Object old_alist_elt;
/* The buffer-list parameters are stored in a special place and not
in the alist. */
in the alist. All buffers must be live. */
if (EQ (prop, Qbuffer_list))
{
f->buffer_list = val;
Lisp_Object list = Qnil;
for (; CONSP (val); val = XCDR (val))
if (!NILP (Fbuffer_live_p (XCAR (val))))
list = Fcons (XCAR (val), list);
f->buffer_list = Fnreverse (list);
return;
}
if (EQ (prop, Qburied_buffer_list))
{
f->buried_buffer_list = val;
Lisp_Object list = Qnil;
for (; CONSP (val); val = XCDR (val))
if (!NILP (Fbuffer_live_p (XCAR (val))))
list = Fcons (XCAR (val), list);
f->buried_buffer_list = Fnreverse (list);
return;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment