Lines Matching refs:ufuncs
42 hb_unicode_combining_class_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
50 hb_unicode_eastasian_width_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
58 hb_unicode_general_category_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
66 hb_unicode_mirroring_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
74 hb_unicode_script_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
82 hb_unicode_compose_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
92 hb_unicode_decompose_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
103 hb_unicode_decompose_compatibility_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED,
166 hb_unicode_funcs_t *ufuncs;
168 if (!(ufuncs = hb_object_create<hb_unicode_funcs_t> ()))
175 ufuncs->parent = hb_unicode_funcs_reference (parent);
177 ufuncs->func = parent->func;
182 ufuncs->user_data = parent->user_data;
184 return ufuncs;
217 * @ufuncs: Unicode functions.
226 hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs)
228 return hb_object_reference (ufuncs);
233 * @ufuncs: Unicode functions.
240 hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs)
242 if (!hb_object_destroy (ufuncs)) return;
245 if (ufuncs->destroy.name) ufuncs->destroy.name (ufuncs->user_data.name);
249 hb_unicode_funcs_destroy (ufuncs->parent);
251 free (ufuncs);
256 * @ufuncs: Unicode functions.
269 hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs,
275 return hb_object_set_user_data (ufuncs, key, data, destroy, replace);
280 * @ufuncs: Unicode functions.
290 hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs,
293 return hb_object_get_user_data (ufuncs, key);
299 * @ufuncs: Unicode functions.
306 hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs)
308 if (unlikely (hb_object_is_inert (ufuncs)))
311 ufuncs->immutable = true;
316 * @ufuncs: Unicode functions.
325 hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs)
327 return ufuncs->immutable;
332 * @ufuncs: Unicode functions.
341 hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs)
343 return ufuncs->parent ? ufuncs->parent : hb_unicode_funcs_get_empty ();
350 hb_unicode_funcs_set_##name##_func (hb_unicode_funcs_t *ufuncs, \
355 if (ufuncs->immutable) \
358 if (ufuncs->destroy.name) \
359 ufuncs->destroy.name (ufuncs->user_data.name); \
362 ufuncs->func.name = func; \
363 ufuncs->user_data.name = user_data; \
364 ufuncs->destroy.name = destroy; \
366 ufuncs->func.name = ufuncs->parent->func.name; \
367 ufuncs->user_data.name = ufuncs->parent->user_data.name; \
368 ufuncs->destroy.name = NULL; \
379 hb_unicode_##name (hb_unicode_funcs_t *ufuncs, \
382 return ufuncs->name (unicode); \
389 * @ufuncs: Unicode functions.
401 hb_unicode_compose (hb_unicode_funcs_t *ufuncs,
406 return ufuncs->compose (a, b, ab);
411 * @ufuncs: Unicode functions.
423 hb_unicode_decompose (hb_unicode_funcs_t *ufuncs,
428 return ufuncs->decompose (ab, a, b);
433 * @ufuncs: Unicode functions.
444 hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
448 return ufuncs->decompose_compatibility (u, decomposed);