GNU bug report logs -
#42943
28.0.50; Emacsclient crashes in ftcrfont_glyph_extents
Previous Next
Reported by: "Basil L. Contovounesios" <contovob <at> tcd.ie>
Date: Thu, 20 Aug 2020 00:48:01 UTC
Severity: normal
Tags: fixed
Found in version 28.0.50
Fixed in version 28.1
Done: "Basil L. Contovounesios" <contovob <at> tcd.ie>
Bug is archived. No further changes may be made.
Full log
Message #38 received at 42943 <at> debbugs.gnu.org (full text, mbox):
> From: Robert Pluim <rpluim <at> gmail.com>
> Cc: contovob <at> tcd.ie, larsi <at> gnus.org, 42943 <at> debbugs.gnu.org
> Date: Sat, 24 Oct 2020 15:27:39 +0200
>
> static int
> fill_gstring_glyph_string (struct glyph_string *s, int face_id,
> int start, int end, int overlaps)
> {
> struct glyph *glyph, *last;
> Lisp_Object lgstring;
> int i;
> bool glyph_not_available_p;
>
> s->for_overlaps = overlaps;
> glyph = s->row->glyphs[s->area] + start;
> last = s->row->glyphs[s->area] + end;
> glyph_not_available_p = glyph->glyph_not_available_p;
> s->cmp_id = glyph->u.cmp.id;
> s->cmp_from = glyph->slice.cmp.from;
> s->cmp_to = glyph->slice.cmp.to + 1;
> s->face = FACE_FROM_ID (s->f, face_id);
> lgstring = composition_gstring_from_id (s->cmp_id);
> s->font = XFONT_OBJECT (LGSTRING_FONT (lgstring)); <----
>
> so itʼs the caching in the Lisp_Object for the composition thatʼs
> causing the problem.
OK, so when we are about to release a font, we need to go over all the
LGSTRING objects in gstring_hash_table, and remove from that cache
every LGSTRING whose LGSTRING_FONT object holds the font we are about
to release.
This bug report was last modified 4 years and 204 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.