aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 2c28b5df6d7..a65dbb48b93 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -5951,8 +5951,21 @@ mark_object (Lisp_Object arg)
5951 break; 5951 break;
5952 5952
5953 case PVEC_FRAME: 5953 case PVEC_FRAME:
5954 mark_vectorlike (ptr); 5954 {
5955 mark_face_cache (((struct frame *) ptr)->face_cache); 5955 struct frame *f = (struct frame *) ptr;
5956
5957 mark_vectorlike (ptr);
5958 mark_face_cache (f->face_cache);
5959#ifdef HAVE_WINDOW_SYSTEM
5960 if (FRAME_WINDOW_P (f) && FRAME_X_OUTPUT (f))
5961 {
5962 struct font *font = FRAME_FONT (f);
5963
5964 if (font && !VECTOR_MARKED_P (font))
5965 mark_vectorlike ((struct Lisp_Vector *) font);
5966 }
5967#endif
5968 }
5956 break; 5969 break;
5957 5970
5958 case PVEC_WINDOW: 5971 case PVEC_WINDOW: