From: Dmitry Antipov Date: Wed, 23 Oct 2013 16:07:30 +0000 (+0400) Subject: Tweak last font-related changes to fix bug#15686. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1176 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=df24a230c7452f899a6d66119d709f65a758195f;p=emacs.git Tweak last font-related changes to fix bug#15686. * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame is a live window system frame, mark it's default font too. --- diff --git a/src/ChangeLog b/src/ChangeLog index 52669b57825..e1e7b4fb78d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2013-10-23 Dmitry Antipov + + Tweak last font-related changes to fix bug#15686. + * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame + is a live window system frame, mark it's default font too. + 2013-10-23 Glenn Morris * Makefile.in (RUN_TEMACS): Make relative (again). 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) break; case PVEC_FRAME: - mark_vectorlike (ptr); - mark_face_cache (((struct frame *) ptr)->face_cache); + { + struct frame *f = (struct frame *) ptr; + + mark_vectorlike (ptr); + mark_face_cache (f->face_cache); +#ifdef HAVE_WINDOW_SYSTEM + if (FRAME_WINDOW_P (f) && FRAME_X_OUTPUT (f)) + { + struct font *font = FRAME_FONT (f); + + if (font && !VECTOR_MARKED_P (font)) + mark_vectorlike ((struct Lisp_Vector *) font); + } +#endif + } break; case PVEC_WINDOW: