diff --git a/src/hb-subset-accelerator.hh b/src/hb-subset-accelerator.hh index bdf75466d..1cdb57eb3 100644 --- a/src/hb-subset-accelerator.hh +++ b/src/hb-subset-accelerator.hh @@ -134,8 +134,11 @@ struct hb_subset_accelerator_t } hb_face_t *source; +#ifndef HB_NO_SUBSET_CFF + // These have to be immediately after source: mutable hb_face_lazy_loader_t cff1_accel; mutable hb_face_lazy_loader_t cff2_accel; +#endif }; diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index 7927d0949..097d46f7b 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -57,9 +57,10 @@ hb_subset_accelerator_t::~hb_subset_accelerator_t () if (cmap_cache && destroy_cmap_cache) destroy_cmap_cache ((void*) cmap_cache); +#ifndef HB_NO_SUBSET_CFF cff1_accel.fini (); cff2_accel.fini (); - +#endif hb_face_destroy (source); } @@ -1161,14 +1162,16 @@ hb_subset_plan_t::hb_subset_plan_t (hb_face_t *face, hb_subset_plan_t::~hb_subset_plan_t() { - hb_face_destroy (source); hb_face_destroy (dest); hb_map_destroy (codepoint_to_glyph); hb_map_destroy (glyph_map); hb_map_destroy (reverse_glyph_map); +#ifndef HB_NO_SUBSET_CFF cff1_accel.fini (); cff2_accel.fini (); +#endif + hb_face_destroy (source); #ifdef HB_EXPERIMENTAL_API for (auto _ : name_table_overrides.iter_ref ()) diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh index b5a8d7f1d..d156de05d 100644 --- a/src/hb-subset-plan.hh +++ b/src/hb-subset-plan.hh @@ -95,9 +95,11 @@ struct hb_subset_plan_t // Plan is only good for a specific source/dest so keep them with it hb_face_t *source; +#ifndef HB_NO_SUBSET_CFF // These have to be immediately after source: hb_face_lazy_loader_t cff1_accel; hb_face_lazy_loader_t cff2_accel; +#endif hb_face_t *dest; diff --git a/src/hb-subset.cc b/src/hb-subset.cc index cc875ce01..cda78e1e4 100644 --- a/src/hb-subset.cc +++ b/src/hb-subset.cc @@ -63,6 +63,7 @@ using OT::Layout::GSUB; using OT::Layout::GPOS; +#ifndef HB_NO_SUBSET_CFF template<> struct hb_subset_plan_t::source_table_loader { @@ -75,6 +76,7 @@ struct hb_subset_plan_t::source_table_loader auto operator () (hb_subset_plan_t *plan) HB_AUTO_RETURN (plan->accelerator ? plan->accelerator->cff2_accel : plan->cff2_accel) }; +#endif /**