Mercurial > emacs
diff 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 |
line wrap: on
line diff
--- a/src/alloc.c Sun Nov 21 14:03:51 2010 -0500 +++ b/src/alloc.c Sun Nov 21 19:39:42 2010 -0500 @@ -5771,13 +5771,14 @@ for (t = terminal_list; t; t = t->next_terminal) { eassert (t->name != NULL); +#ifdef HAVE_WINDOW_SYSTEM + /* If a terminal object is reachable from a stacpro'ed object, + it might have been marked already. Make sure the image cache + gets marked. */ + mark_image_cache (t->image_cache); +#endif /* HAVE_WINDOW_SYSTEM */ if (!VECTOR_MARKED_P (t)) - { -#ifdef HAVE_WINDOW_SYSTEM - mark_image_cache (t->image_cache); -#endif /* HAVE_WINDOW_SYSTEM */ - mark_vectorlike ((struct Lisp_Vector *)t); - } + mark_vectorlike ((struct Lisp_Vector *)t); } }
