[subset-cff] Remove another set of fini_deep

This commit is contained in:
Behdad Esfahbod 2022-01-18 09:32:58 -07:00
parent 07474aa8c6
commit a48aa9850a
1 changed files with 4 additions and 26 deletions

View File

@ -416,16 +416,6 @@ struct parsed_cs_str_t : parsed_values_t<parsed_cs_op_t>
struct parsed_cs_str_vec_t : hb_vector_t<parsed_cs_str_t> struct parsed_cs_str_vec_t : hb_vector_t<parsed_cs_str_t>
{ {
void init (unsigned int len_ = 0)
{
SUPER::init ();
if (unlikely (!resize (len_)))
return;
for (unsigned int i = 0; i < length; i++)
(*this)[i].init ();
}
void fini () { SUPER::fini_deep (); }
private: private:
typedef hb_vector_t<parsed_cs_str_t> SUPER; typedef hb_vector_t<parsed_cs_str_t> SUPER;
}; };
@ -552,19 +542,7 @@ struct subr_subsetter_t
{ {
subr_subsetter_t (ACC &acc_, const hb_subset_plan_t *plan_) subr_subsetter_t (ACC &acc_, const hb_subset_plan_t *plan_)
: acc (acc_), plan (plan_) : acc (acc_), plan (plan_)
{ {}
parsed_charstrings.init ();
parsed_global_subrs.init ();
parsed_local_subrs.init ();
}
~subr_subsetter_t ()
{
closures.fini ();
parsed_charstrings.fini_deep ();
parsed_global_subrs.fini_deep ();
parsed_local_subrs.fini_deep ();
}
/* Subroutine subsetting with --no-desubroutinize runs in phases: /* Subroutine subsetting with --no-desubroutinize runs in phases:
* *
@ -585,8 +563,8 @@ struct subr_subsetter_t
closures.init (acc.fdCount); closures.init (acc.fdCount);
remaps.init (acc.fdCount); remaps.init (acc.fdCount);
parsed_charstrings.init (plan->num_output_glyphs ()); parsed_charstrings.resize (plan->num_output_glyphs ());
parsed_global_subrs.init (acc.globalSubrs->count); parsed_global_subrs.resize (acc.globalSubrs->count);
if (unlikely (remaps.in_error() if (unlikely (remaps.in_error()
|| parsed_charstrings.in_error () || parsed_charstrings.in_error ()
@ -598,7 +576,7 @@ struct subr_subsetter_t
for (unsigned int i = 0; i < acc.fdCount; i++) for (unsigned int i = 0; i < acc.fdCount; i++)
{ {
parsed_local_subrs[i].init (acc.privateDicts[i].localSubrs->count); parsed_local_subrs[i].resize (acc.privateDicts[i].localSubrs->count);
if (unlikely (parsed_local_subrs[i].in_error ())) return false; if (unlikely (parsed_local_subrs[i].in_error ())) return false;
} }
if (unlikely (!closures.valid)) if (unlikely (!closures.valid))