aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c40
1 files changed, 4 insertions, 36 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 68fc5d9d2a7..fe37eec9379 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -353,8 +353,6 @@ static void mark_face_cache P_ ((struct face_cache *));
353 353
354#ifdef HAVE_WINDOW_SYSTEM 354#ifdef HAVE_WINDOW_SYSTEM
355extern void mark_fringe_data P_ ((void)); 355extern void mark_fringe_data P_ ((void));
356static void mark_image P_ ((struct image *));
357static void mark_image_cache P_ ((struct frame *));
358#endif /* HAVE_WINDOW_SYSTEM */ 356#endif /* HAVE_WINDOW_SYSTEM */
359 357
360static struct Lisp_String *allocate_string P_ ((void)); 358static struct Lisp_String *allocate_string P_ ((void));
@@ -5324,34 +5322,6 @@ mark_face_cache (c)
5324} 5322}
5325 5323
5326 5324
5327#ifdef HAVE_WINDOW_SYSTEM
5328
5329/* Mark Lisp objects in image IMG. */
5330
5331static void
5332mark_image (img)
5333 struct image *img;
5334{
5335 mark_object (img->spec);
5336
5337 if (!NILP (img->data.lisp_val))
5338 mark_object (img->data.lisp_val);
5339}
5340
5341
5342/* Mark Lisp objects in image cache of frame F. It's done this way so
5343 that we don't have to include xterm.h here. */
5344
5345static void
5346mark_image_cache (f)
5347 struct frame *f;
5348{
5349 forall_images_in_image_cache (f, mark_image);
5350}
5351
5352#endif /* HAVE_X_WINDOWS */
5353
5354
5355 5325
5356/* Mark reference to a Lisp_Object. 5326/* Mark reference to a Lisp_Object.
5357 If the object referred to has not been seen yet, recursively mark 5327 If the object referred to has not been seen yet, recursively mark
@@ -5520,12 +5490,7 @@ mark_object (arg)
5520 { 5490 {
5521 register struct frame *ptr = XFRAME (obj); 5491 register struct frame *ptr = XFRAME (obj);
5522 if (mark_vectorlike (XVECTOR (obj))) 5492 if (mark_vectorlike (XVECTOR (obj)))
5523 { 5493 mark_face_cache (ptr->face_cache);
5524 mark_face_cache (ptr->face_cache);
5525#ifdef HAVE_WINDOW_SYSTEM
5526 mark_image_cache (ptr);
5527#endif /* HAVE_WINDOW_SYSTEM */
5528 }
5529 } 5494 }
5530 else if (WINDOWP (obj)) 5495 else if (WINDOWP (obj))
5531 { 5496 {
@@ -5760,6 +5725,9 @@ mark_terminals (void)
5760 for (t = terminal_list; t; t = t->next_terminal) 5725 for (t = terminal_list; t; t = t->next_terminal)
5761 { 5726 {
5762 eassert (t->name != NULL); 5727 eassert (t->name != NULL);
5728#ifdef HAVE_WINDOW_SYSTEM
5729 mark_image_cache (t->image_cache);
5730#endif /* HAVE_WINDOW_SYSTEM */
5763 mark_vectorlike ((struct Lisp_Vector *)t); 5731 mark_vectorlike ((struct Lisp_Vector *)t);
5764 } 5732 }
5765} 5733}