diff options
| author | Gerd Möllmann | 2024-06-23 16:20:37 +0200 |
|---|---|---|
| committer | Gerd Möllmann | 2024-06-23 16:20:37 +0200 |
| commit | 33dd41c7459dd9b95af9e17f48cb23c7c236b5c7 (patch) | |
| tree | 0ba95fc42cc95f02a8891197df26717feed39a50 /src/alloc.c | |
| parent | 5b45d53c9fd94b8fa59db9fdc04112006ec6e3e4 (diff) | |
| parent | 39aa286072924ebef68b068fa9d9afc8374ede86 (diff) | |
| download | emacs-33dd41c7459dd9b95af9e17f48cb23c7c236b5c7.tar.gz emacs-33dd41c7459dd9b95af9e17f48cb23c7c236b5c7.zip | |
Merge branch 'master' into scratch/igc
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/alloc.c b/src/alloc.c index 8637f12bd98..80701ae1b38 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -7300,6 +7300,13 @@ mark_frame (struct Lisp_Vector *ptr) | |||
| 7300 | for (tem = f->conversion.actions; tem; tem = tem->next) | 7300 | for (tem = f->conversion.actions; tem; tem = tem->next) |
| 7301 | mark_object (tem->data); | 7301 | mark_object (tem->data); |
| 7302 | #endif | 7302 | #endif |
| 7303 | |||
| 7304 | #ifdef HAVE_WINDOW_SYSTEM | ||
| 7305 | /* Mark this frame's image cache, though it might be common to several | ||
| 7306 | frames with the same font size. */ | ||
| 7307 | if (FRAME_IMAGE_CACHE (f)) | ||
| 7308 | mark_image_cache (FRAME_IMAGE_CACHE (f)); | ||
| 7309 | #endif /* HAVE_WINDOW_SYSTEM */ | ||
| 7303 | } | 7310 | } |
| 7304 | 7311 | ||
| 7305 | static void | 7312 | static void |
| @@ -7597,7 +7604,7 @@ process_mark_stack (ptrdiff_t base_sp) | |||
| 7597 | 7604 | ||
| 7598 | case PVEC_SUBR: | 7605 | case PVEC_SUBR: |
| 7599 | #ifdef HAVE_NATIVE_COMP | 7606 | #ifdef HAVE_NATIVE_COMP |
| 7600 | if (SUBR_NATIVE_COMPILEDP (obj)) | 7607 | if (NATIVE_COMP_FUNCTIONP (obj)) |
| 7601 | { | 7608 | { |
| 7602 | set_vector_marked (ptr); | 7609 | set_vector_marked (ptr); |
| 7603 | struct Lisp_Subr *subr = XSUBR (obj); | 7610 | struct Lisp_Subr *subr = XSUBR (obj); |
| @@ -7763,12 +7770,6 @@ mark_terminals (void) | |||
| 7763 | for (t = terminal_list; t; t = t->next_terminal) | 7770 | for (t = terminal_list; t; t = t->next_terminal) |
| 7764 | { | 7771 | { |
| 7765 | eassert (t->name != NULL); | 7772 | eassert (t->name != NULL); |
| 7766 | #ifdef HAVE_WINDOW_SYSTEM | ||
| 7767 | /* If a terminal object is reachable from a stacpro'ed object, | ||
| 7768 | it might have been marked already. Make sure the image cache | ||
| 7769 | gets marked. */ | ||
| 7770 | mark_image_cache (t->image_cache); | ||
| 7771 | #endif /* HAVE_WINDOW_SYSTEM */ | ||
| 7772 | if (!vectorlike_marked_p (&t->header)) | 7773 | if (!vectorlike_marked_p (&t->header)) |
| 7773 | mark_vectorlike (&t->header); | 7774 | mark_vectorlike (&t->header); |
| 7774 | } | 7775 | } |
| @@ -7798,7 +7799,7 @@ survives_gc_p (Lisp_Object obj) | |||
| 7798 | 7799 | ||
| 7799 | case Lisp_Vectorlike: | 7800 | case Lisp_Vectorlike: |
| 7800 | survives_p = | 7801 | survives_p = |
| 7801 | (SUBRP (obj) && !SUBR_NATIVE_COMPILEDP (obj)) || | 7802 | (SUBRP (obj) && !NATIVE_COMP_FUNCTIONP (obj)) || |
| 7802 | vector_marked_p (XVECTOR (obj)); | 7803 | vector_marked_p (XVECTOR (obj)); |
| 7803 | break; | 7804 | break; |
| 7804 | 7805 | ||