[subset-plan] Simplify gsub/gpos_feature_record_cond_idx_map allocation

This commit is contained in:
Behdad Esfahbod 2023-01-11 11:10:28 -07:00
parent 06039db080
commit 01208c7c02
3 changed files with 6 additions and 11 deletions

View File

@ -160,7 +160,7 @@ struct hb_subset_layout_context_t :
script_langsys_map = &c_->plan->gsub_langsys; script_langsys_map = &c_->plan->gsub_langsys;
feature_index_map = &c_->plan->gsub_features; feature_index_map = &c_->plan->gsub_features;
feature_substitutes_map = c_->plan->gsub_feature_substitutes_map; feature_substitutes_map = c_->plan->gsub_feature_substitutes_map;
feature_record_cond_idx_map = c_->plan->user_axes_location->is_empty () ? nullptr : c_->plan->gsub_feature_record_cond_idx_map; feature_record_cond_idx_map = c_->plan->user_axes_location->is_empty () ? nullptr : &c_->plan->gsub_feature_record_cond_idx_map;
} }
else else
{ {
@ -168,7 +168,7 @@ struct hb_subset_layout_context_t :
script_langsys_map = &c_->plan->gpos_langsys; script_langsys_map = &c_->plan->gpos_langsys;
feature_index_map = &c_->plan->gpos_features; feature_index_map = &c_->plan->gpos_features;
feature_substitutes_map = c_->plan->gpos_feature_substitutes_map; feature_substitutes_map = c_->plan->gpos_feature_substitutes_map;
feature_record_cond_idx_map = c_->plan->user_axes_location->is_empty () ? nullptr : c_->plan->gpos_feature_record_cond_idx_map; feature_record_cond_idx_map = c_->plan->user_axes_location->is_empty () ? nullptr : &c_->plan->gpos_feature_record_cond_idx_map;
} }
} }

View File

@ -632,7 +632,7 @@ _populate_gids_to_retain (hb_subset_plan_t* plan,
&plan->gsub_lookups, &plan->gsub_lookups,
&plan->gsub_features, &plan->gsub_features,
&plan->gsub_langsys, &plan->gsub_langsys,
plan->gsub_feature_record_cond_idx_map, &plan->gsub_feature_record_cond_idx_map,
plan->gsub_feature_substitutes_map); plan->gsub_feature_substitutes_map);
if (!drop_tables->has (HB_OT_TAG_GPOS)) if (!drop_tables->has (HB_OT_TAG_GPOS))
@ -642,7 +642,7 @@ _populate_gids_to_retain (hb_subset_plan_t* plan,
&plan->gpos_lookups, &plan->gpos_lookups,
&plan->gpos_features, &plan->gpos_features,
&plan->gpos_langsys, &plan->gpos_langsys,
plan->gpos_feature_record_cond_idx_map, &plan->gpos_feature_record_cond_idx_map,
plan->gpos_feature_substitutes_map); plan->gpos_feature_substitutes_map);
#endif #endif
_remove_invalid_gids (&plan->_glyphset_gsub, plan->source->get_num_glyphs ()); _remove_invalid_gids (&plan->_glyphset_gsub, plan->source->get_num_glyphs ());
@ -857,9 +857,6 @@ hb_subset_plan_create_or_fail (hb_face_t *face,
plan->reverse_glyph_map = hb_map_create (); plan->reverse_glyph_map = hb_map_create ();
plan->glyph_map_gsub = hb_map_create (); plan->glyph_map_gsub = hb_map_create ();
plan->check_success (plan->gsub_feature_record_cond_idx_map = hb_hashmap_create<unsigned, hb::shared_ptr<hb_set_t>> ());
plan->check_success (plan->gpos_feature_record_cond_idx_map = hb_hashmap_create<unsigned, hb::shared_ptr<hb_set_t>> ());
plan->check_success (plan->gsub_feature_substitutes_map = hb_hashmap_create<unsigned, const OT::Feature*> ()); plan->check_success (plan->gsub_feature_substitutes_map = hb_hashmap_create<unsigned, const OT::Feature*> ());
plan->check_success (plan->gpos_feature_substitutes_map = hb_hashmap_create<unsigned, const OT::Feature*> ()); plan->check_success (plan->gpos_feature_substitutes_map = hb_hashmap_create<unsigned, const OT::Feature*> ());

View File

@ -63,8 +63,6 @@ struct hb_subset_plan_t
hb_map_destroy (axes_index_map); hb_map_destroy (axes_index_map);
hb_map_destroy (axes_old_index_tag_map); hb_map_destroy (axes_old_index_tag_map);
hb_hashmap_destroy (gsub_feature_record_cond_idx_map);
hb_hashmap_destroy (gpos_feature_record_cond_idx_map);
hb_hashmap_destroy (gsub_feature_substitutes_map); hb_hashmap_destroy (gsub_feature_substitutes_map);
hb_hashmap_destroy (gpos_feature_substitutes_map); hb_hashmap_destroy (gpos_feature_substitutes_map);
hb_hashmap_destroy (axes_location); hb_hashmap_destroy (axes_location);
@ -155,8 +153,8 @@ struct hb_subset_plan_t
hb_map_t gpos_features; hb_map_t gpos_features;
//active feature variation records/condition index with variations //active feature variation records/condition index with variations
hb_hashmap_t<unsigned, hb::shared_ptr<hb_set_t>> *gsub_feature_record_cond_idx_map; hb_hashmap_t<unsigned, hb::shared_ptr<hb_set_t>> gsub_feature_record_cond_idx_map;
hb_hashmap_t<unsigned, hb::shared_ptr<hb_set_t>> *gpos_feature_record_cond_idx_map; hb_hashmap_t<unsigned, hb::shared_ptr<hb_set_t>> gpos_feature_record_cond_idx_map;
//feature index-> address of substituation feature table mapping with //feature index-> address of substituation feature table mapping with
//variations //variations