diff --git a/src/hb-font-private.hh b/src/hb-font-private.hh index 48dc72564c4eab62417a36d737f0276d09910c8a..53671d78d23a6da06c235c5a1bc0a6a8ffc06fb5 100644 --- a/src/hb-font-private.hh +++ b/src/hb-font-private.hh @@ -110,8 +110,7 @@ struct hb_font_t { /* Font variation coordinates. */ unsigned int num_coords; - int *x_coords; - int *y_coords; + int *coords; hb_font_funcs_t *klass; void *user_data; diff --git a/src/hb-font.cc b/src/hb-font.cc index 24ecb45023e004d73bca11ac73d3b0b7ff6d9b60..f12dfb5d39511b3e425fe66825a60b9b1c0ae5fb 100644 --- a/src/hb-font.cc +++ b/src/hb-font.cc @@ -1197,8 +1197,7 @@ hb_font_get_empty (void) 0, /* y_ppem */ 0, /* num_coords */ - NULL, /* x_coords */ - NULL, /* y_coords */ + NULL, /* coords */ const_cast (&_hb_font_funcs_nil), /* klass */ NULL, /* user_data */ @@ -1254,10 +1253,8 @@ hb_font_destroy (hb_font_t *font) hb_face_destroy (font->face); hb_font_funcs_destroy (font->klass); - if (font->x_coords) - free (font->x_coords); - if (font->y_coords && font->y_coords != font->x_coords) - free (font->y_coords); + if (font->coords) + free (font->coords); free (font); } @@ -1564,15 +1561,13 @@ hb_font_set_var_coords_normalized (hb_font_t *font, if (unlikely (coords_length && !copy)) return; - if (font->x_coords) - free (font->x_coords); - if (font->y_coords && font->y_coords != font->x_coords) - free (font->y_coords); + if (font->coords) + free (font->coords); if (coords_length) memcpy (copy, coords, coords_length * sizeof (coords[0])); - font->x_coords = font->y_coords = copy; + font->coords = copy; font->num_coords = coords_length; } diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index fb99ec3e01b5ccc5d416f2776283a945e1c9cc5f..3c574af700554a093fe539528abc50e99a7166fb 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -1584,10 +1584,10 @@ struct VariationDevice private: inline hb_position_t get_x_delta (hb_font_t *font, const VariationStore &store) const - { return font->em_scalef_x (get_delta (store, font->x_coords, font->num_coords)); } + { return font->em_scalef_x (get_delta (font, store)); } inline hb_position_t get_y_delta (hb_font_t *font, const VariationStore &store) const - { return font->em_scalef_y (get_delta (store, font->y_coords, font->num_coords)); } + { return font->em_scalef_y (get_delta (font, store)); } inline bool sanitize (hb_sanitize_context_t *c) const { @@ -1597,10 +1597,9 @@ struct VariationDevice private: - inline float get_delta (const VariationStore &store, - int *coords, unsigned int coord_count) const + inline float get_delta (hb_font_t *font, const VariationStore &store) const { - return store.get_delta (outerIndex, innerIndex, coords, coord_count); + return store.get_delta (outerIndex, innerIndex, font->coords, font->num_coords); } protected: