Subject: Re: bug#3208: 23.0.93; Memory full / crash when displaying lots of characters from a large font (like Arial Unicode or Code2000) which is not explicitly selected (on Win32)

From: Jason Rumney <[email-masked]>
Date: Thu, 18 Jun 2009 13:29:48 +0800

Kenichi Handa wrote:

> Anyway, font_sort_entities is called from
> font_find_for_lface (via font_select_entity).
>
> Could you please find why font_find_for_lface is called so
> releatedly by setting breakpoint in fontset_find_font (with
> condition "c == 0x2203)?
>   

I am still investigating this, but I've found that the problem is 
specific to the uniscribe font backend on Windows.  I couldn't find the 
root cause by debugging, so I am now trying profiling to narrow the search.

With uniscribe font backend enabled, font_load_for_lface gets called 
124k times from 165k calls to fontset_find_font before the memory 
overflow. The glyph that gets displayed is a double-width katakana YO 
from MS Mincho font (it seems the font defines the same glyph to be used 
for mathematical THERE EXISTS).

With only the gdi font backend enabled, font_load_for_lface gets called 
only once from 399k calls to fontset_find_font, but the default Courier 
New font is used to display the characters even though it does not 
contain a glyph (so the default empty box glyph is displayed).