Subject: Re: 23.0.60; Emacs trying too hard to find fonts that don't exist

From: Chong Yidong <[email-masked]>
Date: Sat, 24 Jan 2009 14:47:16 -0500

Jason Rumney <[email-masked]> writes:

>> However, there are several other places in that function that return
>> with a Qnil, without doing this FONTSET_SET.  Do matters improve if
>> we do the same FONTSET_SET call before returning?
>
> It doesn't seem to help much, if at all.

How about something like this?  Does it improve performance noticeably?

*** trunk/src/fontset.c.~1.150.~	2009-01-08 06:46:23.000000000 -0500
--- trunk/src/fontset.c	2009-01-24 14:44:09.000000000 -0500
***************
*** 660,665 ****
--- 660,668 ----
    Lisp_Object rfont_def;
    Lisp_Object base_fontset;
  
+   if (EQ (Fchar_table_range (fontset, make_number (c)), Qt))
+     return Qnil;
+ 
    /* Try a font-group of FONTSET. */
    rfont_def = fontset_find_font (fontset, c, face, id, 0);
    if (VECTORP (rfont_def))