[cairo] Error handling in cairo_type1_font_subset_get_glyph_names_and_widths

Adrian Johnson ajohnson at redneon.com
Sun Nov 2 03:27:15 PST 2008

Peter Weilbacher wrote:
>> - Use _cairo_scaled_glyph_lookup() to get the glyph advance instead of
>> using FreeType directly. And only get the widths for the glyphs that are
>> actually used.

> OK, all this sounds nice. But for the first item I'm wondering how you are
> going to get the advance for that glyph if you cannot load it. Is there
> some other code in cairo that magically derives the metrics without asking
> FreeType?

The second sentence "only get the widths for the glyphs that are 
actually used" is what will fix your bug. The first sentence has more to 
do with eliminating the FreeType dependency in type1-subset. If 
_cairo_scaled_glyph_lookup() fails or returns the wrong metrics your 
font will not display correctly on the screen at which point you would 
want to replace the font.

I've pushed out the simple fix - falling back to type1-fallback if it fails:


More information about the cairo mailing list