Subject: Re: bug#11813: bug#11850: crash (null font) running emacs built from git

From: Chong Yidong <[email-masked]>
Date: Sun, 08 Jul 2012 22:20:01 +0800

Eli Zaretskii <[email-masked]> writes:

> OK, then does the following patch fix the problem?
>
> --- src/xdisp.c	2012-07-05 16:28:34 +0000
> +++ src/xdisp.c	2012-07-05 16:51:53 +0000
> @@ -22604,7 +22604,7 @@ fill_glyphless_glyph_string (struct glyp
>    last = s->row->glyphs[s->area] + end;
>    voffset = glyph->voffset;
>    s->face = FACE_FROM_ID (s->f, face_id);
> -  s->font = s->face->font;
> +  s->font = s->face->font ? s->face->font : FRAME_FONT (s->f);
>    s->nchars = 1;
>    s->width = glyph->pixel_width;
>    glyph++;

This patch is correct, please commit it.  Indeed, when creating
glyphless glyphs, we cannot assume that the face has a well-defined
font, because of the case where font loading during face realization
fails.

I'm not sure why font loading fails in the reporter's specific case, but
it's very likely a system misconfiguration.  One way to induce this bug
is to delete a font file, or change its permissions so that it becomes
unreadable.  When you do this, the fontconfig cache will tell Emacs that
the font exists, but then Emacs fails to load the font when it tries,
triggering this bug.

The reporter should try running `fc-cache -fs' and see if the problem
goes away.