1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-21 05:21:37 -07:00

(IT_set_face): Abort if the default face is not realized

and cached.
(IT_write_glyphs): Reset the screen face to the default face
before writing glyphs.
This commit is contained in:
Eli Zaretskii 1999-08-10 10:43:12 +00:00
parent 1697ca3831
commit e30aee93e2

View file

@ -670,7 +670,13 @@ IT_set_face (int face)
unsigned long fg, bg;
if (!fp)
fp = FACE_FROM_ID (selected_frame, DEFAULT_FACE_ID);
{
fp = FACE_FROM_ID (selected_frame, DEFAULT_FACE_ID);
/* The default face for the frame should always be realized and
cached. */
if (!fp)
abort ();
}
screen_face = face;
fg = fp->foreground;
bg = fp->background;
@ -729,6 +735,13 @@ IT_write_glyphs (struct glyph *str, int str_len)
screen_buf = screen_bp = alloca (str_len * 2);
screen_buf_end = screen_buf + str_len * 2;
/* Since faces get cached and uncached behind our back, we can't
rely on their indices in the cache being consistent across
invocations. So always reset the screen face to the default
face of the frame, before writing glyphs, and let the glyphs
set the right face if it's different from the default. */
IT_set_face (DEFAULT_FACE_ID);
/* The mode bit CODING_MODE_LAST_BLOCK should be set to 1 only at
the tail. */