[OTLayout] Make hb_ot_layout_get_size_params() do some checks
This commit is contained in:
parent
875a5cbc9c
commit
372fe2b67b
|
@ -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_start, /* OUT. May be NULL */
|
||||||
unsigned int *range_end /* OUT. May be NULL */)
|
unsigned int *range_end /* OUT. May be NULL */)
|
||||||
{
|
{
|
||||||
|
bool ret = false;
|
||||||
const OT::GPOS &gpos = _get_gpos (face);
|
const OT::GPOS &gpos = _get_gpos (face);
|
||||||
|
|
||||||
unsigned int num_features = gpos.get_feature_count ();
|
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;
|
const OT::FeatureParamsSize ¶ms = f.get_feature_params ().u.size;
|
||||||
|
|
||||||
#define PARAM(a, A) if (a) *a = params.A
|
#define PARAM(a, A) if (a) *a = params.A
|
||||||
|
if (!params.designSize)
|
||||||
|
goto zero_all;
|
||||||
PARAM (design_size, designSize);
|
PARAM (design_size, designSize);
|
||||||
|
if (!params.subfamilyID)
|
||||||
|
{
|
||||||
|
ret = true;
|
||||||
|
goto zero_most;
|
||||||
|
};
|
||||||
PARAM (subfamily_id, subfamilyID);
|
PARAM (subfamily_id, subfamilyID);
|
||||||
PARAM (subfamily_name_id, subfamilyNameID);
|
PARAM (subfamily_name_id, subfamilyNameID);
|
||||||
PARAM (range_start, rangeStart);
|
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
|
#define PARAM(a, A) if (a) *a = 0
|
||||||
|
zero_all:
|
||||||
PARAM (design_size, designSize);
|
PARAM (design_size, designSize);
|
||||||
|
zero_most:
|
||||||
PARAM (subfamily_id, subfamilyID);
|
PARAM (subfamily_id, subfamilyID);
|
||||||
PARAM (subfamily_name_id, subfamilyNameID);
|
PARAM (subfamily_name_id, subfamilyNameID);
|
||||||
PARAM (range_start, rangeStart);
|
PARAM (range_start, rangeStart);
|
||||||
PARAM (range_end, rangeEnd);
|
PARAM (range_end, rangeEnd);
|
||||||
#undef PARAM
|
#undef PARAM
|
||||||
|
|
||||||
return false;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue