Make sure we initialize all callbacks upon creation Also fixes issue with unicode callbacks never being set really.
diff --git a/src/hb-unicode.c b/src/hb-unicode.c index 69ba58c..77efb67 100644 --- a/src/hb-unicode.c +++ b/src/hb-unicode.c
@@ -40,9 +40,7 @@ hb_unicode_funcs_t _hb_unicode_funcs_nil = { HB_REFERENCE_COUNT_INVALID, /* ref_count */ - TRUE, /* immutable */ - { hb_unicode_get_general_category_nil, hb_unicode_get_combining_class_nil, @@ -60,8 +58,7 @@ if (!HB_OBJECT_DO_CREATE (hb_unicode_funcs_t, ufuncs)) return &_hb_unicode_funcs_nil; - *ufuncs = _hb_unicode_funcs_nil; - HB_OBJECT_DO_INIT (ufuncs); + ufuncs->v = _hb_unicode_funcs_nil.v; return ufuncs; } @@ -94,9 +91,7 @@ if (!HB_OBJECT_DO_CREATE (hb_unicode_funcs_t, ufuncs)) return &_hb_unicode_funcs_nil; - *ufuncs = *other_ufuncs; - HB_OBJECT_DO_INIT (ufuncs); - ufuncs->immutable = FALSE; + ufuncs->v = other_ufuncs->v; return ufuncs; }