From a3d626b4b93973adbfb6a89534dd27a8c1876cc5 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 6 Apr 2025 19:16:43 -0600 Subject: [PATCH] [test-object] Hopefully last ubsan fix API change: - hb_face_is_immutable() now takes `hb_face_t *` instead of previous `const hb_face_t *`. This should not pose any problem for any clients in our belief. --- src/hb-face.cc | 2 +- src/hb-face.h | 2 +- test/api/test-object.c | 58 +++++++++++++++++++++--------------------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/hb-face.cc b/src/hb-face.cc index 9051247bc..431cbaccb 100644 --- a/src/hb-face.cc +++ b/src/hb-face.cc @@ -672,7 +672,7 @@ hb_face_make_immutable (hb_face_t *face) * Since: 0.9.2 **/ hb_bool_t -hb_face_is_immutable (const hb_face_t *face) +hb_face_is_immutable (hb_face_t *face) { return hb_object_is_immutable (face); } diff --git a/src/hb-face.h b/src/hb-face.h index 5d39a48cc..b8386f0af 100644 --- a/src/hb-face.h +++ b/src/hb-face.h @@ -131,7 +131,7 @@ HB_EXTERN void hb_face_make_immutable (hb_face_t *face); HB_EXTERN hb_bool_t -hb_face_is_immutable (const hb_face_t *face); +hb_face_is_immutable (hb_face_t *face); HB_EXTERN hb_blob_t * diff --git a/test/api/test-object.c b/test/api/test-object.c index dcc9fff57..d141f5a6d 100644 --- a/test/api/test-object.c +++ b/test/api/test-object.c @@ -29,52 +29,52 @@ /* Unit tests for hb-object-private.h */ -static void * +static hb_blob_t * create_blob (void) { static char data[] = "test data"; return hb_blob_create (data, sizeof (data), HB_MEMORY_MODE_READONLY, NULL, NULL); } -static void * +static hb_blob_t * create_blob_from_inert (void) { return NULL; } -static void * +static hb_buffer_t * create_buffer (void) { return hb_buffer_create (); } -static void * +static hb_buffer_t * create_buffer_from_inert (void) { return NULL; } -static void * +static hb_map_t * create_map (void) { return hb_map_create (); } -static void * +static hb_map_t * create_map_from_inert (void) { return NULL; } -static void * +static hb_set_t * create_set (void) { return hb_set_create (); } -static void * +static hb_set_t * create_set_from_inert (void) { return NULL; } -static void * +static hb_face_t * create_face (void) { hb_blob_t *blob = (hb_blob_t *) create_blob (); @@ -82,13 +82,13 @@ create_face (void) hb_blob_destroy (blob); return face; } -static void * +static hb_face_t * create_face_from_inert (void) { return hb_face_create (hb_blob_get_empty (), 0); } -static void * +static hb_font_t * create_font (void) { hb_face_t *face = (hb_face_t *) create_face (); @@ -96,24 +96,24 @@ create_font (void) hb_face_destroy (face); return font; } -static void * +static hb_font_t * create_font_from_inert (void) { return hb_font_create (hb_face_get_empty ()); } -static void * +static hb_font_funcs_t * create_font_funcs (void) { return hb_font_funcs_create (); } -static void * +static hb_font_funcs_t * create_font_funcs_from_inert (void) { return NULL; } -static void * +static hb_shape_plan_t * create_shape_plan (void) { hb_segment_properties_t props = HB_SEGMENT_PROPERTIES_DEFAULT; @@ -123,18 +123,18 @@ create_shape_plan (void) hb_face_destroy (face); return shape_plan; } -static void * +static hb_shape_plan_t * create_shape_plan_from_inert (void) { return NULL; } -static void * +static hb_unicode_funcs_t * create_unicode_funcs (void) { return hb_unicode_funcs_create (NULL); } -static void * +static hb_unicode_funcs_t * create_unicode_funcs_from_inert (void) { return hb_unicode_funcs_create (hb_unicode_funcs_get_empty ()); @@ -179,11 +179,11 @@ static void \ test_object_##name (void) \ { \ typedef hb_##name##_t type_t; \ - typedef void *(*create_func_t) (void); \ + typedef type_t *(*create_func_t) (void); \ typedef type_t *(*reference_func_t) (type_t *obj); \ typedef void (*destroy_func_t) (type_t *obj); \ typedef hb_bool_t (*set_user_data_func_t) (type_t *obj, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace); \ - typedef void * (*get_user_data_func_t) (type_t *obj, hb_user_data_key_t *key); \ + typedef void * (*get_user_data_func_t) (const type_t *obj, hb_user_data_key_t *key); \ typedef void (*make_immutable_func_t) (type_t *obj); \ typedef hb_bool_t (*is_immutable_func_t) (type_t *obj); \ \ @@ -199,15 +199,15 @@ test_object_##name (void) \ is_immutable_func_t is_immutable; \ const char *name; \ } o[1] = {{\ - (create_func_t) create_##name, \ - (create_func_t) create_##name##_from_inert, \ - (create_func_t) hb_##name##_get_empty, \ - (reference_func_t) hb_##name##_reference, \ - (destroy_func_t) hb_##name##_destroy, \ - (set_user_data_func_t) hb_##name##_set_user_data, \ - (get_user_data_func_t) hb_##name##_get_user_data, \ - (make_immutable_func_t) _hb_object_make_immutable, \ - (is_immutable_func_t) _hb_object_is_immutable, \ + create_##name, \ + create_##name##_from_inert, \ + hb_##name##_get_empty, \ + hb_##name##_reference, \ + hb_##name##_destroy, \ + hb_##name##_set_user_data, \ + hb_##name##_get_user_data, \ + _hb_object_make_immutable, \ + _hb_object_is_immutable, \ #name, \ }}; \ \