From 1945b400da4bb9fbc50e51b3e61f5d0c171c11c0 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 25 Jul 2022 10:45:55 -0600 Subject: [PATCH] [cpluscplus] Wrap hb-subset types as well Also changes signature of get_user_data of hb.h types to take const object. This is safe. --- src/hb-blob.cc | 2 +- src/hb-blob.h | 2 +- src/hb-buffer.cc | 2 +- src/hb-buffer.h | 2 +- src/hb-cplusplus.hh | 23 ++++++++++++++++++++++- src/hb-face.cc | 2 +- src/hb-face.h | 2 +- src/hb-font.cc | 6 +++--- src/hb-font.h | 6 +++--- src/hb-map.cc | 2 +- src/hb-map.h | 2 +- src/hb-set.cc | 2 +- src/hb-set.h | 2 +- src/hb-shape-plan.cc | 4 ++-- src/hb-shape-plan.h | 4 ++-- src/hb-unicode.cc | 4 ++-- src/hb-unicode.h | 4 ++-- test/api/test-cplusplus.cc | 1 + 18 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/hb-blob.cc b/src/hb-blob.cc index 47062eab9..9bc12ea3f 100644 --- a/src/hb-blob.cc +++ b/src/hb-blob.cc @@ -303,7 +303,7 @@ hb_blob_set_user_data (hb_blob_t *blob, * Since: 0.9.2 **/ void * -hb_blob_get_user_data (hb_blob_t *blob, +hb_blob_get_user_data (const hb_blob_t *blob, hb_user_data_key_t *key) { return hb_object_get_user_data (blob, key); diff --git a/src/hb-blob.h b/src/hb-blob.h index 203f9e19d..4eb42314d 100644 --- a/src/hb-blob.h +++ b/src/hb-blob.h @@ -135,7 +135,7 @@ hb_blob_set_user_data (hb_blob_t *blob, HB_EXTERN void * -hb_blob_get_user_data (hb_blob_t *blob, +hb_blob_get_user_data (const hb_blob_t *blob, hb_user_data_key_t *key); diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index d2211d7bf..57a5ae03e 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -831,7 +831,7 @@ hb_buffer_set_user_data (hb_buffer_t *buffer, * Since: 0.9.2 **/ void * -hb_buffer_get_user_data (hb_buffer_t *buffer, +hb_buffer_get_user_data (const hb_buffer_t *buffer, hb_user_data_key_t *key) { return hb_object_get_user_data (buffer, key); diff --git a/src/hb-buffer.h b/src/hb-buffer.h index e095c5344..632f6b523 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -266,7 +266,7 @@ hb_buffer_set_user_data (hb_buffer_t *buffer, hb_bool_t replace); HB_EXTERN void * -hb_buffer_get_user_data (hb_buffer_t *buffer, +hb_buffer_get_user_data (const hb_buffer_t *buffer, hb_user_data_key_t *key); diff --git a/src/hb-cplusplus.hh b/src/hb-cplusplus.hh index f06a32d91..c4d9d29e2 100644 --- a/src/hb-cplusplus.hh +++ b/src/hb-cplusplus.hh @@ -130,7 +130,7 @@ template struct vtable_t { @@ -164,6 +164,27 @@ HB_DEFINE_VTABLE (unicode_funcs); #undef HB_DEFINE_VTABLE +#ifdef HB_SUBSET_H + +#define HB_DEFINE_VTABLE(name) \ + template<> \ + struct vtable \ + : vtable_t {} + + +HB_DEFINE_VTABLE (subset_input); +HB_DEFINE_VTABLE (subset_plan); + +#undef HB_DEFINE_VTABLE + +#endif + + } // namespace hb /* Workaround for GCC < 7, see: diff --git a/src/hb-face.cc b/src/hb-face.cc index 8f8b1a6d1..61adbdd50 100644 --- a/src/hb-face.cc +++ b/src/hb-face.cc @@ -342,7 +342,7 @@ hb_face_set_user_data (hb_face_t *face, * Since: 0.9.2 **/ void * -hb_face_get_user_data (hb_face_t *face, +hb_face_get_user_data (const hb_face_t *face, hb_user_data_key_t *key) { return hb_object_get_user_data (face, key); diff --git a/src/hb-face.h b/src/hb-face.h index 3b7477a76..6ef2f8b88 100644 --- a/src/hb-face.h +++ b/src/hb-face.h @@ -96,7 +96,7 @@ hb_face_set_user_data (hb_face_t *face, hb_bool_t replace); HB_EXTERN void * -hb_face_get_user_data (hb_face_t *face, +hb_face_get_user_data (const hb_face_t *face, hb_user_data_key_t *key); HB_EXTERN void diff --git a/src/hb-font.cc b/src/hb-font.cc index fd9073c33..856bbdda3 100644 --- a/src/hb-font.cc +++ b/src/hb-font.cc @@ -781,8 +781,8 @@ hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, * Since: 0.9.2 **/ void * -hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, - hb_user_data_key_t *key) +hb_font_funcs_get_user_data (const hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key) { return hb_object_get_user_data (ffuncs, key); } @@ -1897,7 +1897,7 @@ hb_font_set_user_data (hb_font_t *font, * Since: 0.9.2 **/ void * -hb_font_get_user_data (hb_font_t *font, +hb_font_get_user_data (const hb_font_t *font, hb_user_data_key_t *key) { return hb_object_get_user_data (font, key); diff --git a/src/hb-font.h b/src/hb-font.h index 3f27bca28..e2c3df4a5 100644 --- a/src/hb-font.h +++ b/src/hb-font.h @@ -86,8 +86,8 @@ hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, HB_EXTERN void * -hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, - hb_user_data_key_t *key); +hb_font_funcs_get_user_data (const hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key); HB_EXTERN void @@ -993,7 +993,7 @@ hb_font_set_user_data (hb_font_t *font, HB_EXTERN void * -hb_font_get_user_data (hb_font_t *font, +hb_font_get_user_data (const hb_font_t *font, hb_user_data_key_t *key); HB_EXTERN void diff --git a/src/hb-map.cc b/src/hb-map.cc index a29fa1a31..5c5f5de59 100644 --- a/src/hb-map.cc +++ b/src/hb-map.cc @@ -145,7 +145,7 @@ hb_map_set_user_data (hb_map_t *map, * Since: 1.7.7 **/ void * -hb_map_get_user_data (hb_map_t *map, +hb_map_get_user_data (const hb_map_t *map, hb_user_data_key_t *key) { return hb_object_get_user_data (map, key); diff --git a/src/hb-map.h b/src/hb-map.h index 41d877d6a..3a067c5c7 100644 --- a/src/hb-map.h +++ b/src/hb-map.h @@ -74,7 +74,7 @@ hb_map_set_user_data (hb_map_t *map, hb_bool_t replace); HB_EXTERN void * -hb_map_get_user_data (hb_map_t *map, +hb_map_get_user_data (const hb_map_t *map, hb_user_data_key_t *key); diff --git a/src/hb-set.cc b/src/hb-set.cc index 5bf9d7c8c..0270b2199 100644 --- a/src/hb-set.cc +++ b/src/hb-set.cc @@ -145,7 +145,7 @@ hb_set_set_user_data (hb_set_t *set, * Since: 0.9.2 **/ void * -hb_set_get_user_data (hb_set_t *set, +hb_set_get_user_data (const hb_set_t *set, hb_user_data_key_t *key) { return hb_object_get_user_data (set, key); diff --git a/src/hb-set.h b/src/hb-set.h index 56902c267..93636ab5d 100644 --- a/src/hb-set.h +++ b/src/hb-set.h @@ -77,7 +77,7 @@ hb_set_set_user_data (hb_set_t *set, hb_bool_t replace); HB_EXTERN void * -hb_set_get_user_data (hb_set_t *set, +hb_set_get_user_data (const hb_set_t *set, hb_user_data_key_t *key); diff --git a/src/hb-shape-plan.cc b/src/hb-shape-plan.cc index 8dbb661cd..9e513c045 100644 --- a/src/hb-shape-plan.cc +++ b/src/hb-shape-plan.cc @@ -358,8 +358,8 @@ hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan, * Since: 0.9.7 **/ void * -hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, - hb_user_data_key_t *key) +hb_shape_plan_get_user_data (const hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key) { return hb_object_get_user_data (shape_plan, key); } diff --git a/src/hb-shape-plan.h b/src/hb-shape-plan.h index fc7c04189..aaf5cf9c4 100644 --- a/src/hb-shape-plan.h +++ b/src/hb-shape-plan.h @@ -102,8 +102,8 @@ hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan, hb_bool_t replace); HB_EXTERN void * -hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, - hb_user_data_key_t *key); +hb_shape_plan_get_user_data (const hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key); HB_EXTERN hb_bool_t diff --git a/src/hb-unicode.cc b/src/hb-unicode.cc index 9899e01a4..c1795dc7f 100644 --- a/src/hb-unicode.cc +++ b/src/hb-unicode.cc @@ -308,8 +308,8 @@ hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, * Since: 0.9.2 **/ void * -hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, - hb_user_data_key_t *key) +hb_unicode_funcs_get_user_data (const hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key) { return hb_object_get_user_data (ufuncs, key); } diff --git a/src/hb-unicode.h b/src/hb-unicode.h index a50038457..faa8d6792 100644 --- a/src/hb-unicode.h +++ b/src/hb-unicode.h @@ -317,8 +317,8 @@ hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, HB_EXTERN void * -hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, - hb_user_data_key_t *key); +hb_unicode_funcs_get_user_data (const hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key); HB_EXTERN void diff --git a/test/api/test-cplusplus.cc b/test/api/test-cplusplus.cc index 28b5e21ab..01b000271 100644 --- a/test/api/test-cplusplus.cc +++ b/test/api/test-cplusplus.cc @@ -33,6 +33,7 @@ #endif #include +#include #include #include