[subset-plan] Simplify _glyphset allocation
This commit is contained in:
parent
1a00ab69ec
commit
4a9268f280
|
@ -667,23 +667,23 @@ _populate_gids_to_retain (hb_subset_plan_t* plan,
|
||||||
* composite glyphs. */
|
* composite glyphs. */
|
||||||
if (glyf.has_data ())
|
if (glyf.has_data ())
|
||||||
for (hb_codepoint_t gid : cur_glyphset)
|
for (hb_codepoint_t gid : cur_glyphset)
|
||||||
_glyf_add_gid_and_children (glyf, gid, plan->_glyphset,
|
_glyf_add_gid_and_children (glyf, gid, &plan->_glyphset,
|
||||||
cur_glyphset.get_population () * HB_COMPOSITE_OPERATIONS_PER_GLYPH);
|
cur_glyphset.get_population () * HB_COMPOSITE_OPERATIONS_PER_GLYPH);
|
||||||
else
|
else
|
||||||
plan->_glyphset->union_ (cur_glyphset);
|
plan->_glyphset.union_ (cur_glyphset);
|
||||||
#ifndef HB_NO_SUBSET_CFF
|
#ifndef HB_NO_SUBSET_CFF
|
||||||
if (!plan->accelerator || plan->accelerator->has_seac)
|
if (!plan->accelerator || plan->accelerator->has_seac)
|
||||||
{
|
{
|
||||||
bool has_seac = false;
|
bool has_seac = false;
|
||||||
if (cff.is_valid ())
|
if (cff.is_valid ())
|
||||||
for (hb_codepoint_t gid : cur_glyphset)
|
for (hb_codepoint_t gid : cur_glyphset)
|
||||||
if (_add_cff_seac_components (cff, gid, plan->_glyphset))
|
if (_add_cff_seac_components (cff, gid, &plan->_glyphset))
|
||||||
has_seac = true;
|
has_seac = true;
|
||||||
plan->has_seac = has_seac;
|
plan->has_seac = has_seac;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_remove_invalid_gids (plan->_glyphset, plan->source->get_num_glyphs ());
|
_remove_invalid_gids (&plan->_glyphset, plan->source->get_num_glyphs ());
|
||||||
|
|
||||||
|
|
||||||
#ifndef HB_NO_VAR
|
#ifndef HB_NO_VAR
|
||||||
|
@ -852,7 +852,6 @@ hb_subset_plan_create_or_fail (hb_face_t *face,
|
||||||
plan->source = hb_face_reference (face);
|
plan->source = hb_face_reference (face);
|
||||||
plan->dest = hb_face_builder_create ();
|
plan->dest = hb_face_builder_create ();
|
||||||
|
|
||||||
plan->_glyphset = hb_set_create ();
|
|
||||||
plan->_glyphset_gsub = hb_set_create ();
|
plan->_glyphset_gsub = hb_set_create ();
|
||||||
plan->_glyphset_mathed = hb_set_create ();
|
plan->_glyphset_mathed = hb_set_create ();
|
||||||
plan->_glyphset_colred = hb_set_create ();
|
plan->_glyphset_colred = hb_set_create ();
|
||||||
|
@ -929,7 +928,7 @@ hb_subset_plan_create_or_fail (hb_face_t *face,
|
||||||
|
|
||||||
_create_old_gid_to_new_gid_map (face,
|
_create_old_gid_to_new_gid_map (face,
|
||||||
input->flags & HB_SUBSET_FLAGS_RETAIN_GIDS,
|
input->flags & HB_SUBSET_FLAGS_RETAIN_GIDS,
|
||||||
plan->_glyphset,
|
&plan->_glyphset,
|
||||||
plan->glyph_map,
|
plan->glyph_map,
|
||||||
plan->reverse_glyph_map,
|
plan->reverse_glyph_map,
|
||||||
&plan->_num_output_glyphs);
|
&plan->_num_output_glyphs);
|
||||||
|
|
|
@ -58,7 +58,6 @@ struct hb_subset_plan_t
|
||||||
hb_map_destroy (glyph_map);
|
hb_map_destroy (glyph_map);
|
||||||
hb_map_destroy (reverse_glyph_map);
|
hb_map_destroy (reverse_glyph_map);
|
||||||
hb_map_destroy (glyph_map_gsub);
|
hb_map_destroy (glyph_map_gsub);
|
||||||
hb_set_destroy (_glyphset);
|
|
||||||
hb_set_destroy (_glyphset_gsub);
|
hb_set_destroy (_glyphset_gsub);
|
||||||
hb_set_destroy (_glyphset_mathed);
|
hb_set_destroy (_glyphset_mathed);
|
||||||
hb_set_destroy (_glyphset_colred);
|
hb_set_destroy (_glyphset_colred);
|
||||||
|
@ -143,7 +142,7 @@ struct hb_subset_plan_t
|
||||||
hb_face_t *dest;
|
hb_face_t *dest;
|
||||||
|
|
||||||
unsigned int _num_output_glyphs;
|
unsigned int _num_output_glyphs;
|
||||||
hb_set_t *_glyphset;
|
hb_set_t _glyphset;
|
||||||
hb_set_t *_glyphset_gsub;
|
hb_set_t *_glyphset_gsub;
|
||||||
hb_set_t *_glyphset_mathed;
|
hb_set_t *_glyphset_mathed;
|
||||||
hb_set_t *_glyphset_colred;
|
hb_set_t *_glyphset_colred;
|
||||||
|
@ -246,7 +245,7 @@ struct hb_subset_plan_t
|
||||||
inline const hb_set_t *
|
inline const hb_set_t *
|
||||||
glyphset () const
|
glyphset () const
|
||||||
{
|
{
|
||||||
return _glyphset;
|
return &_glyphset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -273,7 +272,7 @@ struct hb_subset_plan_t
|
||||||
*/
|
*/
|
||||||
inline bool is_empty_glyph (hb_codepoint_t gid) const
|
inline bool is_empty_glyph (hb_codepoint_t gid) const
|
||||||
{
|
{
|
||||||
return !_glyphset->has (gid);
|
return !_glyphset.has (gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool new_gid_for_codepoint (hb_codepoint_t codepoint,
|
inline bool new_gid_for_codepoint (hb_codepoint_t codepoint,
|
||||||
|
|
Loading…
Reference in New Issue