From: Behdad Esfahbod Date: Tue, 11 Dec 2012 19:30:57 +0000 (-0500) Subject: [OTLayout] Make hb_ot_layout_get_size_params() do some checks X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=372fe2b67b1757e809bf33e1e9055a00c5bed304;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [OTLayout] Make hb_ot_layout_get_size_params() do some checks --- diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc index cf485bd..61ba31a 100644 --- a/src/hb-ot-layout.cc +++ b/src/hb-ot-layout.cc @@ -647,6 +647,7 @@ hb_ot_layout_get_size_params (hb_face_t *face, unsigned int *range_start, /* OUT. May be NULL */ unsigned int *range_end /* OUT. May be NULL */) { + bool ret = false; const OT::GPOS &gpos = _get_gpos (face); unsigned int num_features = gpos.get_feature_count (); @@ -658,7 +659,14 @@ hb_ot_layout_get_size_params (hb_face_t *face, const OT::FeatureParamsSize ¶ms = f.get_feature_params ().u.size; #define PARAM(a, A) if (a) *a = params.A + if (!params.designSize) + goto zero_all; PARAM (design_size, designSize); + if (!params.subfamilyID) + { + ret = true; + goto zero_most; + }; PARAM (subfamily_id, subfamilyID); PARAM (subfamily_name_id, subfamilyNameID); PARAM (range_start, rangeStart); @@ -670,12 +678,14 @@ hb_ot_layout_get_size_params (hb_face_t *face, } #define PARAM(a, A) if (a) *a = 0 +zero_all: PARAM (design_size, designSize); +zero_most: PARAM (subfamily_id, subfamilyID); PARAM (subfamily_name_id, subfamilyNameID); PARAM (range_start, rangeStart); PARAM (range_end, rangeEnd); #undef PARAM - return false; + return ret; }