From 09b16c536d31376de771eedde54620dd6c8f39d7 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Wed, 12 Dec 2018 01:23:53 +0800 Subject: [PATCH 1/2] CMake: Fix Introspection builds We need to add -DHB_AAT_H and -DHB_AAT_H_IN to the flags that are passed to g-ir-scanner, so that introspection builds can proceed normally. --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d6e77e87..b6241e937 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -696,6 +696,8 @@ if (HB_HAVE_INTROSPECTION) -DHB_H_IN -DHB_OT_H -DHB_OT_H_IN + -DHB_AAT_H + -DHB_AAT_H_IN -DHB_GOBJECT_H -DHB_GOBJECT_H_IN -DHB_EXTERN= From 1e09add232e14ef61d2f222a5ee05a2105af64f0 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Wed, 12 Dec 2018 01:32:01 +0800 Subject: [PATCH 2/2] test/api: Fix building on pre-C99 compilers Ensure variables are declared at the top of the block. --- test/api/hb-test.h | 3 ++- test/api/test-aat-layout.c | 3 ++- test/api/test-font.c | 2 +- test/api/test-map.c | 9 ++++++--- test/api/test-ot-color.c | 9 +++++---- test/api/test-ot-face.c | 14 ++++++++------ test/api/test-ot-name.c | 34 ++++++++++++++++++---------------- test/api/test-ot-tag.c | 11 ++++++----- 8 files changed, 48 insertions(+), 37 deletions(-) diff --git a/test/api/hb-test.h b/test/api/hb-test.h index 3f8d08b96..872f45c4b 100644 --- a/test/api/hb-test.h +++ b/test/api/hb-test.h @@ -287,10 +287,11 @@ hb_test_open_font_file (const char *font_path) #endif hb_blob_t *blob = hb_blob_create_from_file (path); + hb_face_t *face; if (hb_blob_get_length (blob) == 0) g_error ("Font %s not found.", path); - hb_face_t *face = hb_face_create (blob, 0); + face = hb_face_create (blob, 0); hb_blob_destroy (blob); g_free (path); diff --git a/test/api/test-aat-layout.c b/test/api/test-aat-layout.c index 8cfebb138..4054b1736 100644 --- a/test/api/test-aat-layout.c +++ b/test/api/test-aat-layout.c @@ -116,6 +116,7 @@ test_aat_has (void) int main (int argc, char **argv) { + unsigned int status; hb_test_init (&argc, &argv); hb_test_add (test_aat_get_feature_types); @@ -124,7 +125,7 @@ main (int argc, char **argv) face = hb_test_open_font_file ("fonts/aat-feat.ttf"); sbix = hb_test_open_font_file ("fonts/chromacheck-sbix.ttf"); - unsigned int status = hb_test_run (); + status = hb_test_run (); hb_face_destroy (sbix); hb_face_destroy (face); return status; diff --git a/test/api/test-font.c b/test/api/test-font.c index a92d8b26a..669019404 100644 --- a/test/api/test-font.c +++ b/test/api/test-font.c @@ -400,6 +400,7 @@ test_fontfuncs_parallels (void) hb_font_t *font0; hb_font_t *font1; hb_font_t *font2; + hb_codepoint_t glyph; blob = hb_blob_create (test_data, sizeof (test_data), HB_MEMORY_MODE_READONLY, NULL, NULL); face = hb_face_create (blob, 0); @@ -424,7 +425,6 @@ test_fontfuncs_parallels (void) hb_font_funcs_destroy (ffuncs2); /* Just test that calling get_nominal_glyph doesn't infinite-loop. */ - hb_codepoint_t glyph; hb_font_get_nominal_glyph (font2, 0x0020u, &glyph); hb_font_destroy (font2); diff --git a/test/api/test-map.c b/test/api/test-map.c index 0d8be0bbb..0911991b8 100644 --- a/test/api/test-map.c +++ b/test/api/test-map.c @@ -31,11 +31,12 @@ static void test_map_basic (void) { hb_map_t *empty = hb_map_get_empty (); + hb_map_t *m; g_assert (hb_map_is_empty (empty)); g_assert (!hb_map_allocation_successful (empty)); hb_map_destroy (empty); - hb_map_t *m = hb_map_create (); + m = hb_map_create (); g_assert (hb_map_allocation_successful (m)); g_assert (hb_map_is_empty (m)); @@ -68,11 +69,12 @@ test_map_userdata (void) hb_user_data_key_t key[2]; int *data = (int *) malloc (sizeof (int)); + int *data2; *data = 3123; hb_map_set_user_data (m, &key[0], data, free, TRUE); g_assert_cmpint (*((int *) hb_map_get_user_data (m, &key[0])), ==, 3123); - int *data2 = (int *) malloc (sizeof (int)); + data2 = (int *) malloc (sizeof (int)); *data2 = 6343; hb_map_set_user_data (m, &key[0], data2, free, FALSE); g_assert_cmpint (*((int *) hb_map_get_user_data (m, &key[0])), ==, 3123); @@ -86,10 +88,11 @@ static void test_map_refcount (void) { hb_map_t *m = hb_map_create (); + hb_map_t *m2; hb_map_set (m, 213, 223); g_assert_cmpint (hb_map_get (m, 213), ==, 223); - hb_map_t *m2 = hb_map_reference (m); + m2 = hb_map_reference (m); hb_map_destroy (m); /* We copied its reference so it is still usable after one destroy */ diff --git a/test/api/test-ot-color.c b/test/api/test-ot-color.c index fdea16258..c0cbd77b9 100644 --- a/test/api/test-ot-color.c +++ b/test/api/test-ot-color.c @@ -317,6 +317,7 @@ test_hb_ot_color_glyph_get_layers (void) { hb_ot_color_layer_t layers[1]; unsigned int count = 1; + unsigned int num_layers; g_assert_cmpuint (hb_ot_color_glyph_get_layers (cpal_v1, 0, 0, NULL, NULL), ==, 0); @@ -325,7 +326,6 @@ test_hb_ot_color_glyph_get_layers (void) g_assert_cmpuint (hb_ot_color_glyph_get_layers (cpal_v1, 2, 0, NULL, NULL), ==, 2); - unsigned int num_layers; num_layers = hb_ot_color_glyph_get_layers (cpal_v1, 2, 0, &count, layers); g_assert_cmpuint (num_layers, ==, 2); @@ -382,13 +382,14 @@ static void test_hb_ot_color_svg (void) { hb_blob_t *blob; + unsigned int length; + const char *data; blob = hb_ot_color_glyph_reference_svg (svg, 0); g_assert (hb_blob_get_length (blob) == 0); blob = hb_ot_color_glyph_reference_svg (svg, 1); - unsigned int length; - const char *data = hb_blob_get_data (blob, &length); + data = hb_blob_get_data (blob, &length); g_assert_cmpuint (length, ==, 146); g_assert (strncmp (data, "", 5) == 0); @@ -406,6 +407,7 @@ test_hb_ot_color_png (void) unsigned int length; const char *data; hb_glyph_extents_t extents; + hb_font_t *cbdt_font; /* sbix */ hb_font_t *sbix_font; @@ -431,7 +433,6 @@ test_hb_ot_color_png (void) hb_font_destroy (sbix_font); /* cbdt */ - hb_font_t *cbdt_font; cbdt_font = hb_font_create (cbdt); blob = hb_ot_color_glyph_reference_png (cbdt_font, 0); g_assert (hb_blob_get_length (blob) == 0); diff --git a/test/api/test-ot-face.c b/test/api/test-ot-face.c index 757bc1f85..f2d2fca4c 100644 --- a/test/api/test-ot-face.c +++ b/test/api/test-ot-face.c @@ -37,17 +37,19 @@ test_face (hb_face_t *face, hb_codepoint_t cp) { hb_font_t *font = hb_font_create (face); + hb_set_t *set; + hb_codepoint_t g; + hb_position_t x, y; + char buf[5] = {0}; + unsigned int len; + hb_glyph_extents_t extents; hb_ot_font_set_funcs (font); - hb_set_t *set = hb_set_create (); + set = hb_set_create (); hb_face_collect_unicodes (face, set); hb_face_collect_variation_selectors (face, set); hb_face_collect_variation_unicodes (face, cp, set); - hb_codepoint_t g; - hb_position_t x, y; - hb_glyph_extents_t extents; - char buf[5] = {0}; hb_font_get_nominal_glyph (font, cp, &g); hb_font_get_variation_glyph (font, cp, cp, &g); hb_font_get_glyph_h_advance (font, cp); @@ -86,7 +88,7 @@ test_face (hb_face_t *face, hb_ot_math_get_min_connector_overlap (font, HB_DIRECTION_RTL); hb_ot_math_get_glyph_assembly (font, cp, HB_DIRECTION_BTT, 0, NULL, NULL, NULL); - unsigned int len = sizeof (buf); + len = sizeof (buf); hb_ot_name_list_names (face, NULL); hb_ot_name_get_utf8 (face, cp, NULL, &len, buf); hb_ot_name_get_utf16 (face, cp, NULL, NULL, NULL); diff --git a/test/api/test-ot-name.c b/test/api/test-ot-name.c index 9e88015f5..c2ae4fd42 100644 --- a/test/api/test-ot-name.c +++ b/test/api/test-ot-name.c @@ -34,6 +34,14 @@ test_ot_layout_feature_get_name_ids_and_characters (void) { hb_tag_t cv01 = HB_TAG ('c','v','0','1'); unsigned int feature_index; + unsigned int num_named_parameters; + hb_ot_name_id_t label_id; + hb_ot_name_id_t tooltip_id; + hb_ot_name_id_t sample_id; + hb_ot_name_id_t first_param_id; + hb_codepoint_t characters[100]; + unsigned int char_count = 100; + unsigned int all_chars; if (!hb_ot_layout_language_find_feature (face, HB_OT_TAG_GSUB, 0, @@ -42,11 +50,6 @@ test_ot_layout_feature_get_name_ids_and_characters (void) &feature_index)) g_error ("Failed to find feature index"); - hb_ot_name_id_t label_id; - hb_ot_name_id_t tooltip_id; - hb_ot_name_id_t sample_id; - unsigned int num_named_parameters; - hb_ot_name_id_t first_param_id; if (!hb_ot_layout_feature_get_name_ids (face, HB_OT_TAG_GSUB, feature_index, &label_id, &tooltip_id, &sample_id, &num_named_parameters, &first_param_id)) @@ -58,10 +61,6 @@ test_ot_layout_feature_get_name_ids_and_characters (void) g_assert_cmpint (num_named_parameters, ==, 2); g_assert_cmpint (first_param_id, ==, 259); - hb_codepoint_t characters[100]; - unsigned int char_count = 100; - - unsigned int all_chars; all_chars = hb_ot_layout_feature_get_characters (face, HB_OT_TAG_GSUB, feature_index, 0, &char_count, characters); @@ -76,14 +75,16 @@ test_ot_name (void) { unsigned int num_entries; const hb_ot_name_entry_t *entries; - entries = hb_ot_name_list_names (face, &num_entries); - g_assert_cmpuint (12, ==, num_entries); - hb_ot_name_id_t name_id = entries[3].name_id; - g_assert_cmpuint (3, ==, name_id); - hb_language_t lang = entries[3].language; - g_assert_cmpstr (hb_language_to_string (lang), ==, "en"); + hb_ot_name_id_t name_id; + hb_language_t lang; char text[10]; unsigned int text_size = 10; + entries = hb_ot_name_list_names (face, &num_entries); + g_assert_cmpuint (12, ==, num_entries); + name_id = entries[3].name_id; + g_assert_cmpuint (3, ==, name_id); + lang = entries[3].language; + g_assert_cmpstr (hb_language_to_string (lang), ==, "en"); g_assert_cmpuint (27, ==, hb_ot_name_get_utf8 (face, name_id, lang, &text_size, text)); g_assert_cmpuint (9, ==, text_size); g_assert_cmpstr (text, ==, "FontForge"); @@ -92,13 +93,14 @@ test_ot_name (void) int main (int argc, char **argv) { + unsigned int status; g_test_init (&argc, &argv, NULL); hb_test_add (test_ot_layout_feature_get_name_ids_and_characters); hb_test_add (test_ot_name); face = hb_test_open_font_file ("fonts/cv01.otf"); - unsigned int status = hb_test_run (); + status = hb_test_run (); hb_face_destroy (face); return status; } diff --git a/test/api/test-ot-tag.c b/test/api/test-ot-tag.c index 82a57dc0b..60231afe9 100644 --- a/test/api/test-ot-tag.c +++ b/test/api/test-ot-tag.c @@ -202,11 +202,11 @@ test_language_two_way (const char *tag_s, const char *lang_s) { hb_language_t lang = hb_language_from_string (lang_s, -1); hb_tag_t tag = hb_tag_from_string (tag_s, -1); + hb_tag_t tag2; + unsigned int count = 1; g_test_message ("Testing language %s <-> tag %s", lang_s, tag_s); - hb_tag_t tag2; - unsigned int count = 1; hb_ot_tags_from_script_and_language (HB_SCRIPT_INVALID, lang, NULL, NULL, &count, &tag2); @@ -223,11 +223,11 @@ test_tag_from_language (const char *tag_s, const char *lang_s) { hb_language_t lang = hb_language_from_string (lang_s, -1); hb_tag_t tag = hb_tag_from_string (tag_s, -1); + hb_tag_t tag2; + unsigned int count = 1; g_test_message ("Testing language %s -> tag %s", lang_s, tag_s); - hb_tag_t tag2; - unsigned int count = 1; hb_ot_tags_from_script_and_language (HB_SCRIPT_INVALID, lang, NULL, NULL, &count, &tag2); @@ -467,9 +467,10 @@ test_tags (hb_script_t script, unsigned int i; hb_tag_t *script_tags = malloc (script_count * sizeof (hb_tag_t)); hb_tag_t *language_tags = malloc (language_count * sizeof (hb_tag_t)); + hb_language_t lang; g_assert (script_tags); g_assert (language_tags); - hb_language_t lang = hb_language_from_string (lang_s, -1); + lang = hb_language_from_string (lang_s, -1); va_start (expected_tags, expected_language_count); hb_ot_tags_from_script_and_language (script, lang, &script_count, script_tags, &language_count, language_tags);