Avoid rare crashes in 'uncache_face'
authorEli Zaretskii <eliz@gnu.org>
Tue, 28 May 2024 16:03:00 +0000 (19:03 +0300)
committerEli Zaretskii <eliz@gnu.org>
Tue, 28 May 2024 16:03:00 +0000 (19:03 +0300)
* src/xfaces.c (realize_face): Prevent rare crashes in
'uncache_face' because 'former_face' is NULL (i.e. the face
corresponding to 'former_face_id' is no longer cached).
(Bug#71243)

src/xfaces.c

index 258fbc52e64f35b92f23c8648fb0a5fe9e5ca50c..e305cc7456f291396f48885ceec47778cc975526 100644 (file)
@@ -6057,7 +6057,8 @@ realize_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE],
     {
       /* Remove the former face.  */
       struct face *former_face = cache->faces_by_id[former_face_id];
-      uncache_face (cache, former_face);
+      if (former_face)
+       uncache_face (cache, former_face);
       free_realized_face (cache->f, former_face);
       SET_FRAME_GARBAGED (cache->f);
     }