diff options
| author | Eli Zaretskii | 2024-05-28 19:03:00 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2024-05-28 19:03:00 +0300 |
| commit | d9512da49514623ef3e35524dc894c06f2c0ce20 (patch) | |
| tree | 54f22d5d97e9ad4f3e52ab410f71921a7271ba11 /src | |
| parent | 9c7de10079bb5f803a1744ae1d56399ad7d42ac5 (diff) | |
| download | emacs-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.c | 3 |
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 | } |