aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2024-05-28 19:03:00 +0300
committerEli Zaretskii2024-05-28 19:03:00 +0300
commitd9512da49514623ef3e35524dc894c06f2c0ce20 (patch)
tree54f22d5d97e9ad4f3e52ab410f71921a7271ba11 /src
parent9c7de10079bb5f803a1744ae1d56399ad7d42ac5 (diff)
downloademacs-d9512da49514623ef3e35524dc894c06f2c0ce20.tar.gz
emacs-d9512da49514623ef3e35524dc894c06f2c0ce20.zip
Avoid rare crashes in 'uncache_face'
* 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)
Diffstat (limited to 'src')
-rw-r--r--src/xfaces.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/xfaces.c b/src/xfaces.c
index 258fbc52e64..e305cc7456f 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -6057,7 +6057,8 @@ realize_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE],
6057 { 6057 {
6058 /* Remove the former face. */ 6058 /* Remove the former face. */
6059 struct face *former_face = cache->faces_by_id[former_face_id]; 6059 struct face *former_face = cache->faces_by_id[former_face_id];
6060 uncache_face (cache, former_face); 6060 if (former_face)
6061 uncache_face (cache, former_face);
6061 free_realized_face (cache->f, former_face); 6062 free_realized_face (cache->f, former_face);
6062 SET_FRAME_GARBAGED (cache->f); 6063 SET_FRAME_GARBAGED (cache->f);
6063 } 6064 }