diff --git a/src/hb-ot-glyf-table.hh b/src/hb-ot-glyf-table.hh index 533601826cc6369b3a75aca7a17e81653d36fd72..e4d3ec851dc15bd5b8bea23fde584b425e6d7f1c 100644 --- a/src/hb-ot-glyf-table.hh +++ b/src/hb-ot-glyf-table.hh @@ -412,7 +412,7 @@ struct glyf } while (composite_it.move_to_next()); if ( (uint16_t) last->flags & CompositeGlyphHeader::WE_HAVE_INSTRUCTIONS) - *instruction_start = start_offset + ((char *) last - (char *) glyf_table->dataX) + last->get_size(); + *instruction_start = ((char *) last - (char *) glyf_table->dataX) + last->get_size(); else *instruction_start = end_offset; *instruction_end = end_offset; diff --git a/test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf b/test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d36cc81601e000d07b2c1813440424a01eed097e Binary files /dev/null and b/test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf differ diff --git a/test/api/test-subset-glyf.c b/test/api/test-subset-glyf.c index 1caa5269717bf3a5604350e08786640fa4d4d099..8e17e8d5af18cd5d62ccb849a0f7ef404495ef30 100644 --- a/test/api/test-subset-glyf.c +++ b/test/api/test-subset-glyf.c @@ -143,12 +143,11 @@ test_subset_glyf_strip_hints_simple (void) hb_face_destroy (face_ac); } -// TODO(rsheeter): test strip hints from composite static void test_subset_glyf_strip_hints_composite (void) { hb_face_t *face_components = hb_subset_test_open_font ("fonts/Roboto-Regular.components.ttf"); - hb_face_t *face_subset = hb_subset_test_open_font ("fonts/Roboto-Regular.components.subset.ttf"); + hb_face_t *face_subset = hb_subset_test_open_font ("fonts/Roboto-Regular.components.1fc.nohints.ttf"); hb_set_t *codepoints = hb_set_create(); hb_set_add (codepoints, 0x1fc); @@ -160,7 +159,7 @@ test_subset_glyf_strip_hints_composite (void) hb_subset_test_check (face_subset, face_generated_subset, HB_TAG ('g','l','y','f')); hb_subset_test_check (face_subset, face_generated_subset, HB_TAG ('l','o','c', 'a')); - check_maxp_num_glyphs(face_generated_subset, 4); + check_maxp_num_glyphs(face_generated_subset, 4, false); hb_face_destroy (face_generated_subset); hb_face_destroy (face_subset);