GNU bug report logs -
#39133
28.0.50; Emacs slowdown on special char
Previous Next
Reported by: Evgeny Zajcev <lg.zevlg <at> gmail.com>
Date: Tue, 14 Jan 2020 13:22:02 UTC
Severity: normal
Found in version 28.0.50
Fixed in version 27.1
Done: Robert Pluim <rpluim <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 39133 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 15 Jan 2020 13:26:11 +0900
> From: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
> Cc: Eli Zaretskii <eliz <at> gnu.org>,
> Evgeny Zajcev <lg.zevlg <at> gmail.com>,
> 39133 <at> debbugs.gnu.org, handa <at> gnu.org
>
> + if (code != FONT_INVALID_CODE)
> + {
> + struct font_metrics metrics;
> +
> + LGLYPH_SET_CODE (glyph, code);
> + font->driver->text_extents (font, &code, 1, &metrics);
> + LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
> + LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
> + LGLYPH_SET_WIDTH (glyph, metrics.width);
> + LGLYPH_SET_ASCENT (glyph, metrics.ascent);
> + LGLYPH_SET_DESCENT (glyph, metrics.descent);
> + }
> }
>
>
> But I'm not sure if it is ok to leave the code and metrics-related
> fields nil when encode_char returns FONT_INVALID_CODE. Handa-san?
We could do in the 'else' branch the same we do in the single caller
of this function, fill_gstring_body, when we don't call
font_fill_lglyph_metrics:
if (FONT_OBJECT_P (font_object))
{
font_fill_lglyph_metrics (g, font_object);
}
else
{
int width = XFIXNAT (CHAR_TABLE_REF (Vchar_width_table, c));
LGLYPH_SET_CODE (g, c);
LGLYPH_SET_LBEARING (g, 0);
LGLYPH_SET_RBEARING (g, width);
LGLYPH_SET_WIDTH (g, width);
LGLYPH_SET_ASCENT (g, 1);
LGLYPH_SET_DESCENT (g, 0);
}
This bug report was last modified 5 years and 85 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.