comparison src/alloc.c @ 111758:0813efd37bf9

Fix image cache marking bug (Bug#6301). * src/alloc.c (mark_terminals): Ensure that the image cache is marked even if the terminal object was marked earlier (Bug#6301).
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 21 Nov 2010 19:39:42 -0500
parents d14945d39811
children 141d3f14d8c3 376148b31b5e
comparison
equal deleted inserted replaced
111757:e9a44a85f427 111758:0813efd37bf9
5769 { 5769 {
5770 struct terminal *t; 5770 struct terminal *t;
5771 for (t = terminal_list; t; t = t->next_terminal) 5771 for (t = terminal_list; t; t = t->next_terminal)
5772 { 5772 {
5773 eassert (t->name != NULL); 5773 eassert (t->name != NULL);
5774 #ifdef HAVE_WINDOW_SYSTEM
5775 /* If a terminal object is reachable from a stacpro'ed object,
5776 it might have been marked already. Make sure the image cache
5777 gets marked. */
5778 mark_image_cache (t->image_cache);
5779 #endif /* HAVE_WINDOW_SYSTEM */
5774 if (!VECTOR_MARKED_P (t)) 5780 if (!VECTOR_MARKED_P (t))
5775 { 5781 mark_vectorlike ((struct Lisp_Vector *)t);
5776 #ifdef HAVE_WINDOW_SYSTEM
5777 mark_image_cache (t->image_cache);
5778 #endif /* HAVE_WINDOW_SYSTEM */
5779 mark_vectorlike ((struct Lisp_Vector *)t);
5780 }
5781 } 5782 }
5782 } 5783 }
5783 5784
5784 5785
5785 5786