]> git.eshelyaron.com Git - emacs.git/commitdiff
Tweak last font-related changes to fix bug#15686.
authorDmitry Antipov <dmantipov@yandex.ru>
Wed, 23 Oct 2013 16:07:30 +0000 (20:07 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Wed, 23 Oct 2013 16:07:30 +0000 (20:07 +0400)
* alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
is a live window system frame, mark it's default font too.

src/ChangeLog
src/alloc.c

index 52669b57825d0b2c58f9489be42b4d14c1955c5c..e1e7b4fb78d13bf094f3c1e5149d1e327f1639f1 100644 (file)
@@ -1,3 +1,9 @@
+2013-10-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       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  <rgm@gnu.org>
 
        * Makefile.in (RUN_TEMACS): Make relative (again).
index 2c28b5df6d76788246adf39dacdae358fc7953b3..a65dbb48b93fc55ddc6a9a611525698e99d2adc2 100644 (file)
@@ -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: