struct _hb_font_funcs_t {
hb_reference_count_t ref_count;
+ hb_bool_t immutable;
+
/*
hb_font_get_glyph_func_t glyph_func;
hb_font_get_contour_point_func_t contour_point_func;
*/
};
+HB_INTERNAL hb_font_funcs_t
+_hb_font_funcs_nil;
/*
* hb_face_t
* hb_font_funcs_t
*/
-static hb_font_funcs_t _hb_font_funcs_nil = {
- HB_REFERENCE_COUNT_INVALID /* ref_count */
+hb_font_funcs_t _hb_font_funcs_nil = {
+ HB_REFERENCE_COUNT_INVALID, /* ref_count */
+
+ TRUE /* immutable */
+
/*
hb_font_get_glyph_func_t glyph_func;
hb_font_get_contour_point_func_t contour_point_func;
/* re-init refcount */
HB_OBJECT_DO_INIT (ffuncs);
+ ffuncs->immutable = FALSE;
return ffuncs;
}
+void
+hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs)
+{
+ if (HB_OBJECT_IS_INERT (ffuncs))
+ return;
+
+ ffuncs->immutable = TRUE;
+}
+
/*