More fixes
authorBehdad Esfahbod <behdad@behdad.org>
Sat, 10 Feb 2018 21:40:03 +0000 (15:40 -0600)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 10 Feb 2018 21:40:03 +0000 (15:40 -0600)
test-subset-glyf still failing. No idea why :(

src/hb-subset.cc
test/api/test-subset-glyf.c

index cf26ee32a7f9928abe45a5ceb9b91b9f5fb554fa..40f175d99efcc0ed4df7f0c1801fa532dfaf1154 100644 (file)
@@ -367,6 +367,5 @@ hb_subset (hb_face_t *source,
 
   // TODO(grieger): Remove once basic subsetting is working + tests updated.
   hb_face_destroy (dest);
-  hb_face_reference (source);
-  return success ? source : hb_face_get_empty();
+  return success ? hb_face_reference (source) : hb_face_get_empty ();
 }
index 196047fe689921023a24e39c6f8854f5d7746fd8..91306767e1c407d1d6b65caec98f3fa8ce8feb18 100644 (file)
@@ -41,7 +41,6 @@ read_file (const char *path,
     rewind (fp);
   }
 
-  bool success = false;
   if (file_length > 0) {
     buffer = (char *) calloc (file_length + 1, sizeof(char));
     if (fread (buffer, 1, file_length, fp) == file_length) {
@@ -61,7 +60,11 @@ read_file (const char *path,
 static hb_face_t *
 open_font (const char *font_path)
 {
-  gchar *path = g_test_build_filename(G_TEST_DIST, font_path, NULL);
+#if GLIB_CHECK_VERSION(2,37,2)
+  gchar* path = g_test_build_filename(G_TEST_DIST, font_path, NULL);
+#else
+  gchar* path = g_strdup(fontFile);
+#endif
 
   size_t length;
   char *font_data = read_file(path, &length);
@@ -88,30 +91,33 @@ test_subset_glyf (void)
 {
   hb_face_t *face_abc = open_font("fonts/Roboto-Regular.abc.ttf");
   hb_face_t *face_ac = open_font("fonts/Roboto-Regular.ac.ttf");
+  hb_face_t *face_abc_subset;
+  hb_blob_t *glyf_expected_blob;
+  hb_blob_t *glyf_actual_blob;
+  hb_set_t *codepoints = hb_set_create();
+  hb_subset_profile_t *profile = hb_subset_profile_create();
+  hb_subset_input_t *input = hb_subset_input_create (codepoints);
 
   g_assert (face_abc);
   g_assert (face_ac);
 
-  hb_set_t *codepoints = hb_set_create();
   hb_set_add (codepoints, 97);
   hb_set_add (codepoints, 99);
 
-  hb_subset_profile_t *profile = hb_subset_profile_create();
-  hb_subset_input_t *input = hb_subset_input_create (codepoints);
-
-  hb_face_t *face_abc_subset = hb_subset (face_abc, profile, input);
+  face_abc_subset = hb_subset (face_abc, profile, input);
   g_assert (face_abc_subset);
 
-  hb_blob_t *glyf_expected_blob = hb_face_reference_table (face_ac, HB_TAG('g','l','y','f'));
-  hb_blob_t *glyf_actual_blob = hb_face_reference_table (face_abc_subset, HB_TAG('g','l','y','f'));
+  glyf_expected_blob = hb_face_reference_table (face_ac, HB_TAG('g','l','y','f'));
+  glyf_actual_blob = hb_face_reference_table (face_abc_subset, HB_TAG('g','l','y','f'));
 
-  int expected_length, actual_length;
   // TODO(grieger): Uncomment below once this actually works.
+  //int expected_length, actual_length;
   // g_assert_cmpmem(hb_blob_get_data (glyf_expected_blob, &expected_length), expected_length,
   //   hb_blob_get_data (glyf_actual_blob, &actual_length), actual_length);
 
   hb_blob_destroy (glyf_actual_blob);
   hb_blob_destroy (glyf_expected_blob);
+
   hb_subset_input_destroy (input);
   hb_subset_profile_destroy (profile);
   hb_set_destroy (codepoints);