summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-10-08 16:13:21 +0300
committerEli Zaretskii <eliz@gnu.org>2019-10-08 16:13:21 +0300
commitbdb04e9dd182436a08fc80d5f7bda6432439271a (patch)
tree90f687f963621167e870ee626c5b3233e63c987c
parent005ed494950bb370598883307b801ff73cbea9db (diff)
downloademacs-bdb04e9dd182436a08fc80d5f7bda6432439271a.tar.gz
Fix aborts when opening a new font after face-cache reset
* src/font.c (font_open_for_lface): Make sure the default face is realized before using its height for the font to be open. (Bug#37637)
-rw-r--r--src/font.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/font.c b/src/font.c
index 935dd64e648..6bc977fd68e 100644
--- a/src/font.c
+++ b/src/font.c
@@ -3314,6 +3314,10 @@ font_open_for_lface (struct frame *f, Lisp_Object entity, Lisp_Object *attrs, Li
pt = XFIXNUM (attrs[LFACE_HEIGHT_INDEX]);
else
{
+ /* We need the default face to be valid below. */
+ if (FRAME_FACE_CACHE (f)->used == 0)
+ recompute_basic_faces (f);
+
struct face *def = FACE_FROM_ID (f, DEFAULT_FACE_ID);
Lisp_Object height = def->lface[LFACE_HEIGHT_INDEX];
eassert (FIXNUMP (height));