[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master a11ae01: Another attempt to fix crashes due to prem
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master a11ae01: Another attempt to fix crashes due to prematurely freed faces |
Date: |
Mon, 28 Sep 2015 12:51:55 +0000 |
branch: master
commit a11ae01df93d32f4881908b1e6f07d6b908fe272
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Another attempt to fix crashes due to prematurely freed faces
* src/xdisp.c (redisplay_internal): Inhibit freeing of realized
faces for as long as we might have desired matrices that reference
those faces. (Bug#21428)
---
src/xdisp.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/xdisp.c b/src/xdisp.c
index 2c38aa9..863d891 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13383,6 +13383,8 @@ redisplay_internal (void)
pending = false;
forget_escape_and_glyphless_faces ();
+ inhibit_free_realized_faces = false;
+
/* If face_change, init_iterator will free all realized faces, which
includes the faces referenced from current matrices. So, we
can't reuse current matrices in this case. */
@@ -13871,6 +13873,10 @@ redisplay_internal (void)
if (sf->fonts_changed)
goto retry;
+ /* Prevent freeing of realized faces, since desired matrices are
+ pending that reference the faces we computed and cached. */
+ inhibit_free_realized_faces = true;
+
/* Prevent various kinds of signals during display update.
stdio is not robust about handling signals,
which can cause an apparent I/O error. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master a11ae01: Another attempt to fix crashes due to prematurely freed faces,
Eli Zaretskii <=