HB_OBJECT_DO_REFERENCE (blob);
}
+unsigned int
+hb_blob_get_reference_count (hb_blob_t *blob)
+{
+ HB_OBJECT_DO_GET_REFERENCE_COUNT (blob);
+}
+
void
hb_blob_destroy (hb_blob_t *blob)
{
hb_blob_t *
hb_blob_reference (hb_blob_t *blob);
+unsigned int
+hb_blob_get_reference_count (hb_blob_t *blob);
+
void
hb_blob_destroy (hb_blob_t *blob);
HB_OBJECT_DO_REFERENCE (fcallbacks);
}
+unsigned int
+hb_font_callbacks_get_reference_count (hb_font_callbacks_t *fcallbacks)
+{
+ HB_OBJECT_DO_GET_REFERENCE_COUNT (fcallbacks);
+}
+
void
hb_font_callbacks_destroy (hb_font_callbacks_t *fcallbacks)
{
HB_OBJECT_DO_REFERENCE (ucallbacks);
}
+unsigned int
+hb_unicode_callbacks_get_reference_count (hb_unicode_callbacks_t *ucallbacks)
+{
+ HB_OBJECT_DO_GET_REFERENCE_COUNT (ucallbacks);
+}
+
void
hb_unicode_callbacks_destroy (hb_unicode_callbacks_t *ucallbacks)
{
HB_OBJECT_DO_REFERENCE (face);
}
+unsigned int
+hb_face_get_reference_count (hb_face_t *face)
+{
+ HB_OBJECT_DO_GET_REFERENCE_COUNT (face);
+}
+
void
hb_face_destroy (hb_face_t *face)
{
HB_OBJECT_DO_REFERENCE (font);
}
+unsigned int
+hb_font_get_reference_count (hb_font_t *font)
+{
+ HB_OBJECT_DO_GET_REFERENCE_COUNT (font);
+}
+
void
hb_font_destroy (hb_font_t *font)
{
hb_font_callbacks_t *
hb_font_callbacks_reference (hb_font_callbacks_t *fcallbacks);
+unsigned int
+hb_font_callbacks_get_reference_count (hb_font_callbacks_t *fcallbacks);
+
void
hb_font_callbacks_destroy (hb_font_callbacks_t *fcallbacks);
hb_unicode_callbacks_t *
hb_unicode_callbacks_reference (hb_unicode_callbacks_t *ucallbacks);
+unsigned int
+hb_unicode_callbacks_get_reference_count (hb_unicode_callbacks_t *ucallbacks);
+
void
hb_unicode_callbacks_destroy (hb_unicode_callbacks_t *ucallbacks);
hb_face_t *
hb_face_reference (hb_face_t *face);
+unsigned int
+hb_face_get_reference_count (hb_face_t *face);
+
void
hb_face_destroy (hb_face_t *face);
hb_font_t *
hb_font_reference (hb_font_t *font);
+unsigned int
+hb_font_get_reference_count (hb_font_t *font);
+
void
hb_font_destroy (hb_font_t *font);
return obj; \
} HB_STMT_END
+#define HB_OBJECT_DO_GET_REFERENCE_COUNT(obj) \
+ HB_STMT_START { \
+ if (HB_OBJECT_IS_INERT (obj)) \
+ return 0; \
+ return HB_REFERENCE_COUNT_GET_VALUE (obj->ref_count); \
+ } HB_STMT_END
+
#define HB_OBJECT_DO_DESTROY(obj) \
HB_STMT_START { \
if (HB_OBJECT_IS_INERT (obj)) \