Make subset input const in the subsetting operation. Don't modify the subset input's sets.
This commit is contained in:
parent
1060b04938
commit
edb57a8d9a
|
@ -400,6 +400,13 @@ _nameid_closure (hb_face_t *face,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static hb_set_t* copy (const hb_set_t* other)
|
||||||
|
{
|
||||||
|
hb_set_t* set = hb_set_create ();
|
||||||
|
set->set (other);
|
||||||
|
return set;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hb_subset_plan_create:
|
* hb_subset_plan_create:
|
||||||
* Computes a plan for subsetting the supplied face according
|
* Computes a plan for subsetting the supplied face according
|
||||||
|
@ -412,7 +419,7 @@ _nameid_closure (hb_face_t *face,
|
||||||
**/
|
**/
|
||||||
hb_subset_plan_t *
|
hb_subset_plan_t *
|
||||||
hb_subset_plan_create (hb_face_t *face,
|
hb_subset_plan_create (hb_face_t *face,
|
||||||
hb_subset_input_t *input)
|
const hb_subset_input_t *input)
|
||||||
{
|
{
|
||||||
hb_subset_plan_t *plan;
|
hb_subset_plan_t *plan;
|
||||||
if (unlikely (!(plan = hb_object_create<hb_subset_plan_t> ())))
|
if (unlikely (!(plan = hb_object_create<hb_subset_plan_t> ())))
|
||||||
|
@ -428,12 +435,12 @@ hb_subset_plan_create (hb_face_t *face,
|
||||||
plan->prune_unicode_ranges = !input->no_prune_unicode_ranges;
|
plan->prune_unicode_ranges = !input->no_prune_unicode_ranges;
|
||||||
plan->retain_all_layout_features = input->retain_all_layout_features;
|
plan->retain_all_layout_features = input->retain_all_layout_features;
|
||||||
plan->unicodes = hb_set_create ();
|
plan->unicodes = hb_set_create ();
|
||||||
plan->name_ids = hb_set_reference (input->name_ids);
|
plan->name_ids = copy (plan->name_ids);
|
||||||
_nameid_closure (face, plan->name_ids);
|
_nameid_closure (face, plan->name_ids);
|
||||||
plan->name_languages = hb_set_reference (input->name_languages);
|
plan->name_languages = copy (input->name_languages);
|
||||||
plan->layout_features = hb_set_reference (input->layout_features);
|
plan->layout_features = copy (input->layout_features);
|
||||||
plan->glyphs_requested = hb_set_reference (input->glyphs);
|
plan->glyphs_requested = copy (input->glyphs);
|
||||||
plan->drop_tables = hb_set_reference (input->drop_tables);
|
plan->drop_tables = copy (input->drop_tables);
|
||||||
plan->source = hb_face_reference (face);
|
plan->source = hb_face_reference (face);
|
||||||
plan->dest = hb_face_builder_create ();
|
plan->dest = hb_face_builder_create ();
|
||||||
|
|
||||||
|
|
|
@ -204,7 +204,7 @@ typedef struct hb_subset_plan_t hb_subset_plan_t;
|
||||||
|
|
||||||
HB_INTERNAL hb_subset_plan_t *
|
HB_INTERNAL hb_subset_plan_t *
|
||||||
hb_subset_plan_create (hb_face_t *face,
|
hb_subset_plan_create (hb_face_t *face,
|
||||||
hb_subset_input_t *input);
|
const hb_subset_input_t *input);
|
||||||
|
|
||||||
HB_INTERNAL void
|
HB_INTERNAL void
|
||||||
hb_subset_plan_destroy (hb_subset_plan_t *plan);
|
hb_subset_plan_destroy (hb_subset_plan_t *plan);
|
||||||
|
|
|
@ -303,7 +303,7 @@ _subset_table (hb_subset_plan_t *plan, hb_tag_t tag)
|
||||||
* Subsets a font according to provided input.
|
* Subsets a font according to provided input.
|
||||||
**/
|
**/
|
||||||
hb_face_t *
|
hb_face_t *
|
||||||
hb_subset (hb_face_t *source, hb_subset_input_t *input)
|
hb_subset (hb_face_t *source, const hb_subset_input_t *input)
|
||||||
{
|
{
|
||||||
if (unlikely (!input || !source)) return hb_face_get_empty ();
|
if (unlikely (!input || !source)) return hb_face_get_empty ();
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ hb_subset_input_get_no_prune_unicode_ranges (hb_subset_input_t *subset_input);
|
||||||
|
|
||||||
/* hb_subset () */
|
/* hb_subset () */
|
||||||
HB_EXTERN hb_face_t *
|
HB_EXTERN hb_face_t *
|
||||||
hb_subset (hb_face_t *source, hb_subset_input_t *input);
|
hb_subset (hb_face_t *source, const hb_subset_input_t *input);
|
||||||
|
|
||||||
|
|
||||||
HB_END_DECLS
|
HB_END_DECLS
|
||||||
|
|
Loading…
Reference in New Issue