summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc37
1 files changed, 14 insertions, 23 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc
index 232131c5958..b16f5077cc9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-plan.cc
@@ -32,6 +32,7 @@
#include "hb-ot-glyf-table.hh"
#include "hb-ot-layout-gdef-table.hh"
#include "hb-ot-layout-gpos-table.hh"
+#include "hb-ot-layout-gsub-table.hh"
#include "hb-ot-cff1-table.hh"
#include "hb-ot-color-colr-table.hh"
#include "hb-ot-var-fvar-table.hh"
@@ -54,7 +55,6 @@ _add_cff_seac_components (const OT::cff1::accelerator_t &cff,
#endif
#ifndef HB_NO_SUBSET_LAYOUT
-#ifdef HB_EXPERIMENTAL_API
static void
_remap_indexes (const hb_set_t *indexes,
hb_map_t *mapping /* OUT */)
@@ -65,7 +65,6 @@ _remap_indexes (const hb_set_t *indexes,
mapping->set (_.first, _.second);
}
-#endif
static inline void
_gsub_closure_glyphs_lookups_features (hb_face_t *face,
@@ -83,21 +82,17 @@ _gsub_closure_glyphs_lookups_features (hb_face_t *face,
hb_ot_layout_lookups_substitute_closure (face,
&lookup_indices,
gids_to_retain);
-#ifdef HB_EXPERIMENTAL_API
- hb_ot_layout_closure_lookups (face,
- HB_OT_TAG_GSUB,
- gids_to_retain,
- &lookup_indices);
+ hb_blob_ptr_t<OT::GSUB> gsub = hb_sanitize_context_t ().reference_table<OT::GSUB> (face);
+ gsub->closure_lookups (face,
+ gids_to_retain,
+ &lookup_indices);
_remap_indexes (&lookup_indices, gsub_lookups);
//closure features
hb_set_t feature_indices;
- hb_ot_layout_closure_features (face,
- HB_OT_TAG_GSUB,
- gsub_lookups,
- &feature_indices);
+ gsub->closure_features (gsub_lookups, &feature_indices);
_remap_indexes (&feature_indices, gsub_features);
-#endif
+ gsub.destroy ();
}
static inline void
@@ -113,21 +108,17 @@ _gpos_closure_lookups_features (hb_face_t *face,
nullptr,
nullptr,
&lookup_indices);
-#ifdef HB_EXPERIMENTAL_API
- hb_ot_layout_closure_lookups (face,
- HB_OT_TAG_GPOS,
- gids_to_retain,
- &lookup_indices);
+ hb_blob_ptr_t<OT::GPOS> gpos = hb_sanitize_context_t ().reference_table<OT::GPOS> (face);
+ gpos->closure_lookups (face,
+ gids_to_retain,
+ &lookup_indices);
_remap_indexes (&lookup_indices, gpos_lookups);
//closure features
hb_set_t feature_indices;
- hb_ot_layout_closure_features (face,
- HB_OT_TAG_GPOS,
- gpos_lookups,
- &feature_indices);
+ gpos->closure_features (gpos_lookups, &feature_indices);
_remap_indexes (&feature_indices, gpos_features);
-#endif
+ gpos.destroy ();
}
#endif
@@ -301,7 +292,7 @@ static void
_nameid_closure (hb_face_t *face,
hb_set_t *nameids)
{
-#ifndef HB_NO_STAT
+#ifndef HB_NO_STYLE
face->table.STAT->collect_name_ids (nameids);
#endif
#ifndef HB_NO_VAR