diff --git a/src/hb-font.cc b/src/hb-font.cc index 6657c636c..40d93ecc4 100644 --- a/src/hb-font.cc +++ b/src/hb-font.cc @@ -917,6 +917,21 @@ hb_font_set_funcs (hb_font_t *font, font->destroy = destroy; } +void +hb_font_set_funcs_data (hb_font_t *font, + void *user_data, + hb_destroy_func_t destroy) +{ + if (font->immutable) + return; + + if (font->destroy) + font->destroy (font->user_data); + + font->user_data = user_data; + font->destroy = destroy; +} + void hb_font_set_scale (hb_font_t *font, diff --git a/src/hb-font.h b/src/hb-font.h index 363ab5591..8a9dda593 100644 --- a/src/hb-font.h +++ b/src/hb-font.h @@ -367,6 +367,12 @@ hb_font_set_funcs (hb_font_t *font, void *font_data, hb_destroy_func_t destroy); +/* Be *very* careful with this function! */ +void +hb_font_set_funcs_data (hb_font_t *font, + void *font_data, + hb_destroy_func_t destroy); + void hb_font_set_scale (hb_font_t *font,