Commit a11ae01d authored by Eli Zaretskii's avatar Eli Zaretskii

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)
parent 28ddc850
......@@ -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. */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment