[subset-plan] Simplify gsub/gpos_feature_record_cond_idx_map allocation

pull/4027/head
Behdad Esfahbod 2 years ago
parent 06039db080
commit 01208c7c02
  1. 4
      src/hb-ot-layout-common.hh
  2. 7
      src/hb-subset-plan.cc
  3. 6
      src/hb-subset-plan.hh

@ -160,7 +160,7 @@ struct hb_subset_layout_context_t :
script_langsys_map = &c_->plan->gsub_langsys;
feature_index_map = &c_->plan->gsub_features;
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
{
@ -168,7 +168,7 @@ struct hb_subset_layout_context_t :
script_langsys_map = &c_->plan->gpos_langsys;
feature_index_map = &c_->plan->gpos_features;
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;
}
}

@ -632,7 +632,7 @@ _populate_gids_to_retain (hb_subset_plan_t* plan,
&plan->gsub_lookups,
&plan->gsub_features,
&plan->gsub_langsys,
plan->gsub_feature_record_cond_idx_map,
&plan->gsub_feature_record_cond_idx_map,
plan->gsub_feature_substitutes_map);
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_features,
&plan->gpos_langsys,
plan->gpos_feature_record_cond_idx_map,
&plan->gpos_feature_record_cond_idx_map,
plan->gpos_feature_substitutes_map);
#endif
_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->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->gpos_feature_substitutes_map = hb_hashmap_create<unsigned, const OT::Feature*> ());

@ -63,8 +63,6 @@ struct hb_subset_plan_t
hb_map_destroy (axes_index_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 (gpos_feature_substitutes_map);
hb_hashmap_destroy (axes_location);
@ -155,8 +153,8 @@ struct hb_subset_plan_t
hb_map_t gpos_features;
//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>> *gpos_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;
//feature index-> address of substituation feature table mapping with
//variations

Loading…
Cancel
Save