Mercurial > emacs
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 |
