Avoid crashes with remapped default face in Org mode
* src/xfaces.c (face_at_buffer_position): Look up BASE_FACE_ID anew if it is not in the frame's face cache. This avoids crashes when Org mode sets up for a new major mode in embedded code fragment, and the default face is remapped. (Bug#33222)
This commit is contained in:
parent
97660fa9d6
commit
c9390423d6
1 changed files with 8 additions and 1 deletions
|
@ -5943,7 +5943,14 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
|
|||
int face_id;
|
||||
|
||||
if (base_face_id >= 0)
|
||||
face_id = base_face_id;
|
||||
{
|
||||
face_id = base_face_id;
|
||||
/* Make sure the base face ID is usable: if someone freed the
|
||||
cached faces since we've looked up the base face, we need
|
||||
to look it up again. */
|
||||
if (!FACE_FROM_ID_OR_NULL (f, face_id))
|
||||
face_id = lookup_basic_face (f, DEFAULT_FACE_ID);
|
||||
}
|
||||
else if (NILP (Vface_remapping_alist))
|
||||
face_id = DEFAULT_FACE_ID;
|
||||
else
|
||||
|
|
Loading…
Add table
Reference in a new issue