Fix undefined behavior in cmp function

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274
This commit is contained in:
Behdad Esfahbod 2015-12-07 10:34:47 +01:00
parent fcf9e61bad
commit 255df68012

View File

@ -203,7 +203,8 @@ struct hb_ot_map_builder_t
unsigned int stage[2]; /* GSUB/GPOS */ unsigned int stage[2]; /* GSUB/GPOS */
static int cmp (const feature_info_t *a, const feature_info_t *b) static int cmp (const feature_info_t *a, const feature_info_t *b)
{ return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) : (a->seq < b->seq ? -1 : 1); } { return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) :
(a->seq < b->seq ? -1 : a->seq > b->seq ? 1 : 0); }
}; };
struct stage_info_t { struct stage_info_t {