]> git.eshelyaron.com Git - emacs.git/commit
Don't attempt to cache glyph metrics for FONT_INVALID_CODE
authorRobert Pluim <rpluim@gmail.com>
Fri, 24 Jan 2020 13:11:44 +0000 (14:11 +0100)
committerRobert Pluim <rpluim@gmail.com>
Mon, 2 Mar 2020 08:59:34 +0000 (09:59 +0100)
commitfe1a447d52f548441d19af580ed11ef56d4459d2
treebaa0419db5d8a8b7605c80b55cefe6fbefc0d7f6
parentb42b894d1def7180ab715615116fe6af65b76bd8
Don't attempt to cache glyph metrics for FONT_INVALID_CODE

This was causing massive slowdown in redisplay when eg #xfe0f
(VARIATION SELECTOR-16) was present, as the cache ended up very large,
unused, and being recreated on every call to font_fill_lglyph_metrics
(Bug#39133).

* src/composite.c (fill_gstring_body): Hoist FONT_OBJECT_P check out
of loop.  Calculate glyph code and check for FONT_INVALID_CODE before
calling font_fill_lglyph_metrics.  Pass glyph code to it.

* src/font.c (font_fill_lglyph_metrics): Add code parameter, move
glyph code calculation up the call stack into fill_gstring_body.

* src/font.h: Adjust font_fill_lglyph_metrics prototype.
src/composite.c
src/font.c
src/font.h