[HarfBuzz] harfbuzz-ng: Changes to 'graphite2'
mhosken at gmail.com
Wed Aug 24 19:18:02 PDT 2011
You mentioned that you intend to simplify the whole userdata approach for both uniscribe and graphite, which is a great idea. One thing that is worth pointing out is that graphite is somewhat unique in needing a difference between undef (not yet tried to create a gr_face) and NULL (tried and failed). Most fonts are not going to have graphite tables so we don't want to keep trying to create a gr_face for them. Instead we just want to try once and note that this isn't a graphite font. The fail is then quick.
I haven't refactored the hb-graphite2.cc to put that back since you intend to refactor that area anyway. I would suggest the following patch though:
diff --git a/src/hb-graphite2.cc b/src/hb-graphite2.cc
index df97175..dfeab9f 100644
@@ -227,6 +227,7 @@ hb_graphite_shape (hb_font_t *font,
hb_gr_font_data_t *data = _hb_gr_font_get_data (font);
+ if (!data->grface) return FALSE;
unsigned int charlen;
hb_glyph_info_t *bufferi = hb_buffer_get_glyph_infos (buffer, &charlen);
otherwise you try to do feature stuff on a null font, and so on.
More information about the HarfBuzz