Skip to content

Commit 512d9ba

Browse files
committed
In segmenter/compiler subsetting ops don't rely on hb default feature list.
Use only the IFT spec default feature list.
1 parent afed61c commit 512d9ba

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

ift/encoder/glyph_groupings_test.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "ift/encoder/subset_definition.h"
1616
#include "ift/encoder/types.h"
1717
#include "ift/freq/probability_bound.h"
18+
#include "ift/encoder/init_subset_defaults.h"
1819

1920
namespace ift::encoder {
2021

@@ -64,6 +65,8 @@ class GlyphGroupingsTest : public ::testing::Test {
6465
uint32_t num_glyphs = hb_face_get_glyph_count(roboto_.get());
6566

6667
SubsetDefinition init_font_segment;
68+
AddInitSubsetDefaults(init_font_segment);
69+
6770
closure_cache_ = std::make_unique<GlyphClosureCache>(roboto_.get());
6871
requested_segmentation_info_ =
6972
std::make_unique<RequestedSegmentationInformation>(
@@ -131,6 +134,8 @@ class GlyphGroupingsTest : public ::testing::Test {
131134
glyph_conditions_complex_->AddAndCondition(ToGlyph(0x6C), 1);
132135

133136
SubsetDefinition init_font_segment;
137+
AddInitSubsetDefaults(init_font_segment);
138+
134139
requested_segmentation_info_complex_ =
135140
std::make_unique<RequestedSegmentationInformation>(
136141
segments_complex_, init_font_segment, *closure_cache_,
@@ -581,6 +586,7 @@ TEST_F(GlyphGroupingsTest, ExclusiveGlyphsRespectsPatchCombinations) {
581586

582587
TEST_F(GlyphGroupingsTest, ComplexConditionFinding_LeaveUnmapped) {
583588
SubsetDefinition init_font_segment;
589+
AddInitSubsetDefaults(init_font_segment);
584590
RequestedSegmentationInformation segmentation_info(
585591
segments_complex_, init_font_segment, *closure_cache_, PATCH);
586592

ift/encoder/merger.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ Status Merger::ApplyInitFontMove(const GlyphSet& glyphs_to_move, double delta) {
718718
<< " glyphs into the initial font (cost delta = " << delta << ")";
719719

720720
SubsetDefinition initial_segment =
721-
Context().SegmentationInfo().InitFontSegmentWithoutDefaults();
721+
Context().SegmentationInfo().InitFontSegment();
722722
initial_segment.gids.union_set(glyphs_to_move);
723723

724724
TRYV(Context().ReassignInitSubset(initial_segment));

ift/encoder/subset_definition.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ void SubsetDefinition::ConfigureInput(hb_subset_input_t* input,
183183

184184
hb_set_t* features =
185185
hb_subset_input_set(input, HB_SUBSET_SETS_LAYOUT_FEATURE_TAG);
186+
// hb_input_t has a set of layout featurs configured by default, we
187+
// instead rely on the IFT spec default feature list so clear out the
188+
// harfbuzz provided ones.
189+
hb_set_clear(features);
186190
for (hb_tag_t tag : feature_tags) {
187191
hb_set_add(features, tag);
188192
}

0 commit comments

Comments
 (0)