diff --git a/src/hb-ot-name-table.hh b/src/hb-ot-name-table.hh index 14ac4ef2c..f0b5a5e68 100644 --- a/src/hb-ot-name-table.hh +++ b/src/hb-ot-name-table.hh @@ -33,6 +33,10 @@ namespace OT { +#define entry_score var.u16[0] +#define entry_index var.u16[1] + + /* * name -- Naming * https://docs.microsoft.com/en-us/typography/opentype/spec/name @@ -118,11 +122,11 @@ _hb_ot_name_entry_cmp (const void *pa, const void *pb) if (e) return e; - if (a->score != b->score) - return a->score < b->score ? -1 : +1; + if (a->entry_score != b->entry_score) + return a->entry_score < b->entry_score ? -1 : +1; - if (a->index != b->index) - return a->index < b->index ? -1 : +1; + if (a->entry_index != b->entry_index) + return a->entry_index < b->entry_index ? -1 : +1; return 0; } @@ -174,13 +178,12 @@ struct name for (uint16_t i = 0; i < all_names.len; i++) { - unsigned int name_id = all_names[i].nameID; - uint16_t score = all_names[i].score (); - hb_language_t language = HB_LANGUAGE_INVALID; /* XXX */ + hb_ot_name_entry_t *entry = this->names.push (); - hb_ot_name_entry_t entry = {name_id, score, i, language}; - - this->names.push (entry); + entry->name_id = all_names[i].nameID; + entry->language = HB_LANGUAGE_INVALID; /* XXX */ + entry->entry_score = all_names[i].score (); + entry->entry_index = i; } this->names.qsort (_hb_ot_name_entry_cmp); diff --git a/src/hb-ot-name.h b/src/hb-ot-name.h index 013ce8dd4..fb4948021 100644 --- a/src/hb-ot-name.h +++ b/src/hb-ot-name.h @@ -79,8 +79,7 @@ typedef struct hb_ot_name_entry_t { hb_name_id_t name_id; /*< private >*/ - uint16_t score; - uint16_t index; + hb_var_int_t var; /*< public >*/ hb_language_t language; } hb_ot_name_entry_t;