From 06039db0801f68bfe93dcff1c733595d77a1580e Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 11 Jan 2023 11:07:31 -0700 Subject: [PATCH] [subset-plan] Simplify gsub_langsys and gpos_langsys allocation --- src/hb-ot-layout-common.hh | 4 ++-- src/hb-subset-plan.cc | 7 ++----- src/hb-subset-plan.hh | 6 ++---- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh index 71fd2050c..60d973329 100644 --- a/src/hb-ot-layout-common.hh +++ b/src/hb-ot-layout-common.hh @@ -157,7 +157,7 @@ struct hb_subset_layout_context_t : if (tag_ == HB_OT_TAG_GSUB) { lookup_index_map = &c_->plan->gsub_lookups; - script_langsys_map = c_->plan->gsub_langsys; + 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; @@ -165,7 +165,7 @@ struct hb_subset_layout_context_t : else { lookup_index_map = &c_->plan->gpos_lookups; - script_langsys_map = c_->plan->gpos_langsys; + 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; diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index e6a0a2101..1afac8b66 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -631,7 +631,7 @@ _populate_gids_to_retain (hb_subset_plan_t* plan, &plan->_glyphset_gsub, &plan->gsub_lookups, &plan->gsub_features, - plan->gsub_langsys, + &plan->gsub_langsys, plan->gsub_feature_record_cond_idx_map, plan->gsub_feature_substitutes_map); @@ -641,7 +641,7 @@ _populate_gids_to_retain (hb_subset_plan_t* plan, &plan->_glyphset_gsub, &plan->gpos_lookups, &plan->gpos_features, - plan->gpos_langsys, + &plan->gpos_langsys, plan->gpos_feature_record_cond_idx_map, plan->gpos_feature_substitutes_map); #endif @@ -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_langsys = hb_hashmap_create> ()); - plan->check_success (plan->gpos_langsys = hb_hashmap_create> ()); - plan->check_success (plan->gsub_feature_record_cond_idx_map = hb_hashmap_create> ()); plan->check_success (plan->gpos_feature_record_cond_idx_map = hb_hashmap_create> ()); diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh index f9f2bafcb..a3ddb30c1 100644 --- a/src/hb-subset-plan.hh +++ b/src/hb-subset-plan.hh @@ -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_langsys); - hb_hashmap_destroy (gpos_langsys); 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); @@ -149,8 +147,8 @@ struct hb_subset_plan_t hb_map_t gpos_lookups; //active langsys we'd like to retain - hb_hashmap_t> *gsub_langsys; - hb_hashmap_t> *gpos_langsys; + hb_hashmap_t> gsub_langsys; + hb_hashmap_t> gpos_langsys; //active features after removing redundant langsys and prune_features hb_map_t gsub_features;