emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 1233bcb: Work around GC+Cairo bug


From: Paul Eggert
Subject: [Emacs-diffs] master 1233bcb: Work around GC+Cairo bug
Date: Tue, 3 Apr 2018 11:24:43 -0400 (EDT)

branch: master
commit 1233bcb0a78755ec4f3a925b84c15b1c6f715b1c
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Work around GC+Cairo bug
    
    Workaround suggested by Robert Pluim (Bug#20890#13).
    * src/ftfont.c (ftfont_close) [USE_CAIRO]:
    Do nothing if GC is in progress.
---
 src/ftfont.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/ftfont.c b/src/ftfont.c
index 84e4a30..fea00ff 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -1245,6 +1245,12 @@ ftfont_close (struct font *font)
   /* FIXME: Although this function can be called while garbage-collecting,
      the function assumes that Lisp data structures are properly-formed.
      This invalid assumption can lead to core dumps (Bug#20890).  */
+#ifdef USE_CAIRO
+  /* Although this works around Bug#20890, it is probably not the
+     right thing to do.  */
+  if (gc_in_progress)
+    return;
+#endif
 
   struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
   Lisp_Object val, cache;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]