diff options
Diffstat (limited to 'src/hb-cff2-interp-cs.hh')
-rw-r--r-- | src/hb-cff2-interp-cs.hh | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/hb-cff2-interp-cs.hh b/src/hb-cff2-interp-cs.hh index 00c25800e..d0b9e7b08 100644 --- a/src/hb-cff2-interp-cs.hh +++ b/src/hb-cff2-interp-cs.hh @@ -40,15 +40,13 @@ struct blend_arg_t : number_t void set_real (double v) { reset_blends (); number_t::set_real (v); } void set_blends (unsigned int numValues_, unsigned int valueIndex_, - hb_array_t<const blend_arg_t> blends_) + unsigned int numBlends, hb_array_t<const blend_arg_t> blends_) { numValues = numValues_; valueIndex = valueIndex_; - unsigned numBlends = blends_.length; - if (unlikely (!deltas.resize (numBlends))) - return; + deltas.resize (numBlends); for (unsigned int i = 0; i < numBlends; i++) - deltas.arrayZ[i] = blends_.arrayZ[i]; + deltas[i] = blends_[i]; } bool blending () const { return deltas.length > 0; } @@ -63,6 +61,7 @@ struct blend_arg_t : number_t hb_vector_t<number_t> deltas; }; +typedef interp_env_t<blend_arg_t> BlendInterpEnv; typedef biased_subrs_t<CFF2Subrs> cff2_biased_subrs_t; template <typename ELEM> @@ -155,9 +154,8 @@ struct cff2_cs_interp_env_t : cs_interp_env_t<ELEM, CFF2Subrs> { if (likely (scalars.length == deltas.length)) { - unsigned count = scalars.length; - for (unsigned i = 0; i < count; i++) - v += (double) scalars.arrayZ[i] * deltas.arrayZ[i].to_real (); + for (unsigned int i = 0; i < scalars.length; i++) + v += (double) scalars[i] * deltas[i].to_real (); } } return v; @@ -222,7 +220,7 @@ struct cff2_cs_opset_t : cs_opset_t<ELEM, OPSET, cff2_cs_interp_env_t<ELEM>, PAR const hb_array_t<const ELEM> blends, unsigned n, unsigned i) { - arg.set_blends (n, i, blends); + arg.set_blends (n, i, blends.length, blends); } template <typename T = ELEM, hb_enable_if (!hb_is_same (T, blend_arg_t))> |