diff options
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 40 |
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 |
| 355 | extern void mark_fringe_data P_ ((void)); | 355 | extern void mark_fringe_data P_ ((void)); |
| 356 | static void mark_image P_ ((struct image *)); | ||
| 357 | static void mark_image_cache P_ ((struct frame *)); | ||
| 358 | #endif /* HAVE_WINDOW_SYSTEM */ | 356 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 359 | 357 | ||
| 360 | static struct Lisp_String *allocate_string P_ ((void)); | 358 | static 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 | |||
| 5331 | static void | ||
| 5332 | mark_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 | |||
| 5345 | static void | ||
| 5346 | mark_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 | } |