[subset] Sprinkle some HB_NO_SUBSET_CFF

This commit is contained in:
Behdad Esfahbod 2023-06-23 10:27:44 -06:00
parent 26f320dcd3
commit 7344411cc2
4 changed files with 12 additions and 2 deletions

View file

@ -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<OT::cff1_subset_accelerator_t, 1> cff1_accel;
mutable hb_face_lazy_loader_t<OT::cff2_subset_accelerator_t, 2> cff2_accel;
#endif
};

View file

@ -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 ())

View file

@ -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<OT::cff1_subset_accelerator_t, 1> cff1_accel;
hb_face_lazy_loader_t<OT::cff2_subset_accelerator_t, 2> cff2_accel;
#endif
hb_face_t *dest;

View file

@ -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<const OT::cff1>
{
@ -75,6 +76,7 @@ struct hb_subset_plan_t::source_table_loader<const OT::cff2>
auto operator () (hb_subset_plan_t *plan)
HB_AUTO_RETURN (plan->accelerator ? plan->accelerator->cff2_accel : plan->cff2_accel)
};
#endif
/**