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)
This commit is contained in:
parent
28ddc85047
commit
a11ae01df9
1 changed files with 6 additions and 0 deletions
|
@ -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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue