Lines Matching defs: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,
171 hb_unicode_funcs_t *ufuncs;
173 if (!(ufuncs = hb_object_create<hb_unicode_funcs_t> ()))
180 ufuncs->parent = hb_unicode_funcs_reference (parent);
182 ufuncs->func = parent->func;
187 ufuncs->user_data = parent->user_data;
189 return ufuncs;
222 * @ufuncs: Unicode functions.
231 hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs)
233 return hb_object_reference (ufuncs);
238 * @ufuncs: Unicode functions.
245 hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs)
247 if (!hb_object_destroy (ufuncs)) return;
250 if (ufuncs->destroy.name) ufuncs->destroy.name (ufuncs->user_data.name);
254 hb_unicode_funcs_destroy (ufuncs->parent);
256 free (ufuncs);
261 * @ufuncs: Unicode functions.
274 hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs,
280 return hb_object_set_user_data (ufuncs, key, data, destroy, replace);
285 * @ufuncs: Unicode functions.
295 hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs,
298 return hb_object_get_user_data (ufuncs, key);
304 * @ufuncs: Unicode functions.
311 hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs)
313 if (unlikely (hb_object_is_inert (ufuncs)))
316 ufuncs->immutable = true;
321 * @ufuncs: Unicode functions.
330 hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs)
332 return ufuncs->immutable;
337 * @ufuncs: Unicode functions.
346 hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs)
348 return ufuncs->parent ? ufuncs->parent : hb_unicode_funcs_get_empty ();
355 hb_unicode_funcs_set_##name##_func (hb_unicode_funcs_t *ufuncs, \
360 if (ufuncs->immutable) \
363 if (ufuncs->destroy.name) \
364 ufuncs->destroy.name (ufuncs->user_data.name); \
367 ufuncs->func.name = func; \
368 ufuncs->user_data.name = user_data; \
369 ufuncs->destroy.name = destroy; \
371 ufuncs->func.name = ufuncs->parent->func.name; \
372 ufuncs->user_data.name = ufuncs->parent->user_data.name; \
373 ufuncs->destroy.name = NULL; \
384 hb_unicode_##name (hb_unicode_funcs_t *ufuncs, \
387 return ufuncs->name (unicode); \
394 * @ufuncs: Unicode functions.
406 hb_unicode_compose (hb_unicode_funcs_t *ufuncs,
411 return ufuncs->compose (a, b, ab);
416 * @ufuncs: Unicode functions.
428 hb_unicode_decompose (hb_unicode_funcs_t *ufuncs,
433 return ufuncs->decompose (ab, a, b);
438 * @ufuncs: Unicode functions.
449 hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
453 return ufuncs->decompose_compatibility (u, decomposed);