Rename HBGlyphID to HBGlyphID16

This commit is contained in:
Behdad Esfahbod 2021-09-19 16:30:12 -04:00
parent 74f96d9d4b
commit c852b86841
19 changed files with 106 additions and 106 deletions

View File

@ -4782,7 +4782,7 @@ hb
HB HB
HBASELINE HBASELINE
HBFixed HBFixed
HBGlyphID HBGlyphID16
HBINT HBINT
hbot hbot
hbotABCD hbotABCD

View File

@ -82,7 +82,7 @@ struct BaselineTableFormat2Part
} }
protected: protected:
HBGlyphID stdGlyph; /* The specific glyph index number in this HBGlyphID16 stdGlyph; /* The specific glyph index number in this
* font that is used to set the baseline values. * font that is used to set the baseline values.
* This is the standard glyph. * This is the standard glyph.
* This glyph must contain a set of control points * This glyph must contain a set of control points
@ -105,7 +105,7 @@ struct BaselineTableFormat3Part
} }
protected: protected:
HBGlyphID stdGlyph; /* ditto */ HBGlyphID16 stdGlyph; /* ditto */
HBUINT16 ctlPoints[32]; /* ditto */ HBUINT16 ctlPoints[32]; /* ditto */
Lookup<HBUINT16> Lookup<HBUINT16>
lookupTable; /* Lookup table that maps glyphs to their lookupTable; /* Lookup table that maps glyphs to their

View File

@ -96,8 +96,8 @@ struct LookupSegmentSingle
return_trace (c->check_struct (this) && value.sanitize (c, base)); return_trace (c->check_struct (this) && value.sanitize (c, base));
} }
HBGlyphID last; /* Last GlyphID in this segment */ HBGlyphID16 last; /* Last GlyphID in this segment */
HBGlyphID first; /* First GlyphID in this segment */ HBGlyphID16 first; /* First GlyphID in this segment */
T value; /* The lookup value (only one) */ T value; /* The lookup value (only one) */
public: public:
DEFINE_SIZE_STATIC (4 + T::static_size); DEFINE_SIZE_STATIC (4 + T::static_size);
@ -165,8 +165,8 @@ struct LookupSegmentArray
valuesZ.sanitize (c, base, last - first + 1, hb_forward<Ts> (ds)...)); valuesZ.sanitize (c, base, last - first + 1, hb_forward<Ts> (ds)...));
} }
HBGlyphID last; /* Last GlyphID in this segment */ HBGlyphID16 last; /* Last GlyphID in this segment */
HBGlyphID first; /* First GlyphID in this segment */ HBGlyphID16 first; /* First GlyphID in this segment */
NNOffset16To<UnsizedArrayOf<T>> NNOffset16To<UnsizedArrayOf<T>>
valuesZ; /* A 16-bit offset from the start of valuesZ; /* A 16-bit offset from the start of
* the table to the data. */ * the table to the data. */
@ -225,7 +225,7 @@ struct LookupSingle
return_trace (c->check_struct (this) && value.sanitize (c, base)); return_trace (c->check_struct (this) && value.sanitize (c, base));
} }
HBGlyphID glyph; /* Last GlyphID */ HBGlyphID16 glyph; /* Last GlyphID */
T value; /* The lookup value (only one) */ T value; /* The lookup value (only one) */
public: public:
DEFINE_SIZE_STATIC (2 + T::static_size); DEFINE_SIZE_STATIC (2 + T::static_size);
@ -287,7 +287,7 @@ struct LookupFormat8
protected: protected:
HBUINT16 format; /* Format identifier--format = 8 */ HBUINT16 format; /* Format identifier--format = 8 */
HBGlyphID firstGlyph; /* First glyph index included in the trimmed array. */ HBGlyphID16 firstGlyph; /* First glyph index included in the trimmed array. */
HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last
* glyph minus the value of firstGlyph plus 1). */ * glyph minus the value of firstGlyph plus 1). */
UnsizedArrayOf<T> UnsizedArrayOf<T>
@ -329,7 +329,7 @@ struct LookupFormat10
protected: protected:
HBUINT16 format; /* Format identifier--format = 8 */ HBUINT16 format; /* Format identifier--format = 8 */
HBUINT16 valueSize; /* Byte size of each value. */ HBUINT16 valueSize; /* Byte size of each value. */
HBGlyphID firstGlyph; /* First glyph index included in the trimmed array. */ HBGlyphID16 firstGlyph; /* First glyph index included in the trimmed array. */
HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last
* glyph minus the value of firstGlyph plus 1). */ * glyph minus the value of firstGlyph plus 1). */
UnsizedArrayOf<HBUINT8> UnsizedArrayOf<HBUINT8>
@ -661,7 +661,7 @@ struct ClassTable
return_trace (c->check_struct (this) && classArray.sanitize (c)); return_trace (c->check_struct (this) && classArray.sanitize (c));
} }
protected: protected:
HBGlyphID firstGlyph; /* First glyph index included in the trimmed array. */ HBGlyphID16 firstGlyph; /* First glyph index included in the trimmed array. */
Array16Of<HBUCHAR> classArray; /* The class codes (indexed by glyph index minus Array16Of<HBUCHAR> classArray; /* The class codes (indexed by glyph index minus
* firstGlyph). */ * firstGlyph). */
public: public:

View File

@ -100,7 +100,7 @@ struct UnconditionalAddGlyphAction
protected: protected:
ActionSubrecordHeader ActionSubrecordHeader
header; header;
HBGlyphID addGlyph; /* Glyph that should be added if the distance factor HBGlyphID16 addGlyph; /* Glyph that should be added if the distance factor
* is growing. */ * is growing. */
public: public:
@ -121,11 +121,11 @@ struct ConditionalAddGlyphAction
HBFixed substThreshold; /* Distance growth factor (in ems) at which HBFixed substThreshold; /* Distance growth factor (in ems) at which
* this glyph is replaced and the growth factor * this glyph is replaced and the growth factor
* recalculated. */ * recalculated. */
HBGlyphID addGlyph; /* Glyph to be added as kashida. If this value is HBGlyphID16 addGlyph; /* Glyph to be added as kashida. If this value is
* 0xFFFF, no extra glyph will be added. Note that * 0xFFFF, no extra glyph will be added. Note that
* generally when a glyph is added, justification * generally when a glyph is added, justification
* will need to be redone. */ * will need to be redone. */
HBGlyphID substGlyph; /* Glyph to be substituted for this glyph if the HBGlyphID16 substGlyph; /* Glyph to be substituted for this glyph if the
* growth factor equals or exceeds the value of * growth factor equals or exceeds the value of
* substThreshold. */ * substThreshold. */
public: public:
@ -170,7 +170,7 @@ struct RepeatedAddGlyphAction
ActionSubrecordHeader ActionSubrecordHeader
header; header;
HBUINT16 flags; /* Currently unused; set to 0. */ HBUINT16 flags; /* Currently unused; set to 0. */
HBGlyphID glyph; /* Glyph that should be added if the distance factor HBGlyphID16 glyph; /* Glyph that should be added if the distance factor
* is growing. */ * is growing. */
public: public:
DEFINE_SIZE_STATIC (10); DEFINE_SIZE_STATIC (10);

View File

@ -82,8 +82,8 @@ struct KernPair
} }
protected: protected:
HBGlyphID left; HBGlyphID16 left;
HBGlyphID right; HBGlyphID16 right;
FWORD value; FWORD value;
public: public:
DEFINE_SIZE_STATIC (6); DEFINE_SIZE_STATIC (6);

View File

@ -243,21 +243,21 @@ struct ContextualSubtable
if (buffer->idx == buffer->len && !mark_set) if (buffer->idx == buffer->len && !mark_set)
return; return;
const HBGlyphID *replacement; const HBGlyphID16 *replacement;
replacement = nullptr; replacement = nullptr;
if (Types::extended) if (Types::extended)
{ {
if (entry.data.markIndex != 0xFFFF) if (entry.data.markIndex != 0xFFFF)
{ {
const Lookup<HBGlyphID> &lookup = subs[entry.data.markIndex]; const Lookup<HBGlyphID16> &lookup = subs[entry.data.markIndex];
replacement = lookup.get_value (buffer->info[mark].codepoint, driver->num_glyphs); replacement = lookup.get_value (buffer->info[mark].codepoint, driver->num_glyphs);
} }
} }
else else
{ {
unsigned int offset = entry.data.markIndex + buffer->info[mark].codepoint; unsigned int offset = entry.data.markIndex + buffer->info[mark].codepoint;
const UnsizedArrayOf<HBGlyphID> &subs_old = (const UnsizedArrayOf<HBGlyphID> &) subs; const UnsizedArrayOf<HBGlyphID16> &subs_old = (const UnsizedArrayOf<HBGlyphID16> &) subs;
replacement = &subs_old[Types::wordOffsetToIndex (offset, table, subs_old.arrayZ)]; replacement = &subs_old[Types::wordOffsetToIndex (offset, table, subs_old.arrayZ)];
if (!replacement->sanitize (&c->sanitizer) || !*replacement) if (!replacement->sanitize (&c->sanitizer) || !*replacement)
replacement = nullptr; replacement = nullptr;
@ -278,14 +278,14 @@ struct ContextualSubtable
{ {
if (entry.data.currentIndex != 0xFFFF) if (entry.data.currentIndex != 0xFFFF)
{ {
const Lookup<HBGlyphID> &lookup = subs[entry.data.currentIndex]; const Lookup<HBGlyphID16> &lookup = subs[entry.data.currentIndex];
replacement = lookup.get_value (buffer->info[idx].codepoint, driver->num_glyphs); replacement = lookup.get_value (buffer->info[idx].codepoint, driver->num_glyphs);
} }
} }
else else
{ {
unsigned int offset = entry.data.currentIndex + buffer->info[idx].codepoint; unsigned int offset = entry.data.currentIndex + buffer->info[idx].codepoint;
const UnsizedArrayOf<HBGlyphID> &subs_old = (const UnsizedArrayOf<HBGlyphID> &) subs; const UnsizedArrayOf<HBGlyphID16> &subs_old = (const UnsizedArrayOf<HBGlyphID16> &) subs;
replacement = &subs_old[Types::wordOffsetToIndex (offset, table, subs_old.arrayZ)]; replacement = &subs_old[Types::wordOffsetToIndex (offset, table, subs_old.arrayZ)];
if (!replacement->sanitize (&c->sanitizer) || !*replacement) if (!replacement->sanitize (&c->sanitizer) || !*replacement)
replacement = nullptr; replacement = nullptr;
@ -315,7 +315,7 @@ struct ContextualSubtable
bool has_glyph_classes; bool has_glyph_classes;
unsigned int mark; unsigned int mark;
const ContextualSubtable *table; const ContextualSubtable *table;
const UnsizedListOfOffset16To<Lookup<HBGlyphID>, HBUINT, false> &subs; const UnsizedListOfOffset16To<Lookup<HBGlyphID16>, HBUINT, false> &subs;
}; };
bool apply (hb_aat_apply_context_t *c) const bool apply (hb_aat_apply_context_t *c) const
@ -359,7 +359,7 @@ struct ContextualSubtable
protected: protected:
StateTable<Types, EntryData> StateTable<Types, EntryData>
machine; machine;
NNOffsetTo<UnsizedListOfOffset16To<Lookup<HBGlyphID>, HBUINT, false>, HBUINT> NNOffsetTo<UnsizedListOfOffset16To<Lookup<HBGlyphID16>, HBUINT, false>, HBUINT>
substitutionTables; substitutionTables;
public: public:
DEFINE_SIZE_STATIC (20); DEFINE_SIZE_STATIC (20);
@ -531,7 +531,7 @@ struct LigatureSubtable
if (action & (LigActionStore | LigActionLast)) if (action & (LigActionStore | LigActionLast))
{ {
ligature_idx = Types::offsetToIndex (ligature_idx, table, ligature.arrayZ); ligature_idx = Types::offsetToIndex (ligature_idx, table, ligature.arrayZ);
const HBGlyphID &ligatureData = ligature[ligature_idx]; const HBGlyphID16 &ligatureData = ligature[ligature_idx];
if (unlikely (!ligatureData.sanitize (&c->sanitizer))) break; if (unlikely (!ligatureData.sanitize (&c->sanitizer))) break;
hb_codepoint_t lig = ligatureData; hb_codepoint_t lig = ligatureData;
@ -565,7 +565,7 @@ struct LigatureSubtable
const LigatureSubtable *table; const LigatureSubtable *table;
const UnsizedArrayOf<HBUINT32> &ligAction; const UnsizedArrayOf<HBUINT32> &ligAction;
const UnsizedArrayOf<HBUINT16> &component; const UnsizedArrayOf<HBUINT16> &component;
const UnsizedArrayOf<HBGlyphID> &ligature; const UnsizedArrayOf<HBGlyphID16> &ligature;
unsigned int match_length; unsigned int match_length;
unsigned int match_positions[HB_MAX_CONTEXT_LENGTH]; unsigned int match_positions[HB_MAX_CONTEXT_LENGTH];
}; };
@ -597,7 +597,7 @@ struct LigatureSubtable
ligAction; /* Offset to the ligature action table. */ ligAction; /* Offset to the ligature action table. */
NNOffsetTo<UnsizedArrayOf<HBUINT16>, HBUINT> NNOffsetTo<UnsizedArrayOf<HBUINT16>, HBUINT>
component; /* Offset to the component table. */ component; /* Offset to the component table. */
NNOffsetTo<UnsizedArrayOf<HBGlyphID>, HBUINT> NNOffsetTo<UnsizedArrayOf<HBGlyphID16>, HBUINT>
ligature; /* Offset to the actual ligature lists. */ ligature; /* Offset to the actual ligature lists. */
public: public:
DEFINE_SIZE_STATIC (28); DEFINE_SIZE_STATIC (28);
@ -620,7 +620,7 @@ struct NoncontextualSubtable
unsigned int count = c->buffer->len; unsigned int count = c->buffer->len;
for (unsigned int i = 0; i < count; i++) for (unsigned int i = 0; i < count; i++)
{ {
const HBGlyphID *replacement = substitute.get_value (info[i].codepoint, num_glyphs); const HBGlyphID16 *replacement = substitute.get_value (info[i].codepoint, num_glyphs);
if (replacement) if (replacement)
{ {
info[i].codepoint = *replacement; info[i].codepoint = *replacement;
@ -641,7 +641,7 @@ struct NoncontextualSubtable
} }
protected: protected:
Lookup<HBGlyphID> substitute; Lookup<HBGlyphID16> substitute;
public: public:
DEFINE_SIZE_MIN (2); DEFINE_SIZE_MIN (2);
}; };
@ -744,7 +744,7 @@ struct InsertionSubtable
unsigned int count = (flags & MarkedInsertCount); unsigned int count = (flags & MarkedInsertCount);
if (unlikely ((buffer->max_ops -= count) <= 0)) return; if (unlikely ((buffer->max_ops -= count) <= 0)) return;
unsigned int start = entry.data.markedInsertIndex; unsigned int start = entry.data.markedInsertIndex;
const HBGlyphID *glyphs = &insertionAction[start]; const HBGlyphID16 *glyphs = &insertionAction[start];
if (unlikely (!c->sanitizer.check_array (glyphs, count))) count = 0; if (unlikely (!c->sanitizer.check_array (glyphs, count))) count = 0;
bool before = flags & MarkedInsertBefore; bool before = flags & MarkedInsertBefore;
@ -772,7 +772,7 @@ struct InsertionSubtable
unsigned int count = (flags & CurrentInsertCount) >> 5; unsigned int count = (flags & CurrentInsertCount) >> 5;
if (unlikely ((buffer->max_ops -= count) <= 0)) return; if (unlikely ((buffer->max_ops -= count) <= 0)) return;
unsigned int start = entry.data.currentInsertIndex; unsigned int start = entry.data.currentInsertIndex;
const HBGlyphID *glyphs = &insertionAction[start]; const HBGlyphID16 *glyphs = &insertionAction[start];
if (unlikely (!c->sanitizer.check_array (glyphs, count))) count = 0; if (unlikely (!c->sanitizer.check_array (glyphs, count))) count = 0;
bool before = flags & CurrentInsertBefore; bool before = flags & CurrentInsertBefore;
@ -810,7 +810,7 @@ struct InsertionSubtable
private: private:
hb_aat_apply_context_t *c; hb_aat_apply_context_t *c;
unsigned int mark; unsigned int mark;
const UnsizedArrayOf<HBGlyphID> &insertionAction; const UnsizedArrayOf<HBGlyphID16> &insertionAction;
}; };
bool apply (hb_aat_apply_context_t *c) const bool apply (hb_aat_apply_context_t *c) const
@ -836,7 +836,7 @@ struct InsertionSubtable
protected: protected:
StateTable<Types, EntryData> StateTable<Types, EntryData>
machine; machine;
NNOffsetTo<UnsizedArrayOf<HBGlyphID>, HBUINT> NNOffsetTo<UnsizedArrayOf<HBGlyphID16>, HBUINT>
insertionAction; /* Byte offset from stateHeader to the start of insertionAction; /* Byte offset from stateHeader to the start of
* the insertion glyph table. */ * the insertion glyph table. */
public: public:

View File

@ -182,9 +182,9 @@ struct Tag : HBUINT32
}; };
/* Glyph index number, same as uint16 (length = 16 bits) */ /* Glyph index number, same as uint16 (length = 16 bits) */
struct HBGlyphID : HBUINT16 struct HBGlyphID16 : HBUINT16
{ {
HBGlyphID& operator = (uint16_t i) { HBUINT16::operator= (i); return *this; } HBGlyphID16& operator = (uint16_t i) { HBUINT16::operator= (i); return *this; }
}; };
/* Script/language-system/feature index */ /* Script/language-system/feature index */

View File

@ -604,7 +604,7 @@ struct CmapSubtableTrimmed
UINT length; /* Byte length of this subtable. */ UINT length; /* Byte length of this subtable. */
UINT language; /* Ignore. */ UINT language; /* Ignore. */
UINT startCharCode; /* First character code covered. */ UINT startCharCode; /* First character code covered. */
ArrayOf<HBGlyphID, UINT> ArrayOf<HBGlyphID16, UINT>
glyphIdArray; /* Array of glyph index values for character glyphIdArray; /* Array of glyph index values for character
* codes in the range. */ * codes in the range. */
public: public:
@ -900,7 +900,7 @@ struct UVSMapping
} }
HBUINT24 unicodeValue; /* Base Unicode value of the UVS */ HBUINT24 unicodeValue; /* Base Unicode value of the UVS */
HBGlyphID glyphID; /* Glyph ID of the UVS */ HBGlyphID16 glyphID; /* Glyph ID of the UVS */
public: public:
DEFINE_SIZE_STATIC (5); DEFINE_SIZE_STATIC (5);
}; };

View File

@ -508,8 +508,8 @@ struct IndexSubtableRecord
offset, length, format); offset, length, format);
} }
HBGlyphID firstGlyphIndex; HBGlyphID16 firstGlyphIndex;
HBGlyphID lastGlyphIndex; HBGlyphID16 lastGlyphIndex;
Offset32To<IndexSubtable> offsetToSubtable; Offset32To<IndexSubtable> offsetToSubtable;
public: public:
DEFINE_SIZE_STATIC (8); DEFINE_SIZE_STATIC (8);
@ -679,8 +679,8 @@ struct BitmapSizeTable
HBUINT32 colorRef; HBUINT32 colorRef;
SBitLineMetrics horizontal; SBitLineMetrics horizontal;
SBitLineMetrics vertical; SBitLineMetrics vertical;
HBGlyphID startGlyphIndex; HBGlyphID16 startGlyphIndex;
HBGlyphID endGlyphIndex; HBGlyphID16 endGlyphIndex;
HBUINT8 ppemX; HBUINT8 ppemX;
HBUINT8 ppemY; HBUINT8 ppemY;
HBUINT8 bitDepth; HBUINT8 bitDepth;

View File

@ -121,7 +121,7 @@ struct LayerRecord
} }
public: public:
HBGlyphID glyphId; /* Glyph ID of layer glyph */ HBGlyphID16 glyphId; /* Glyph ID of layer glyph */
Index colorIdx; /* Index value to use with a Index colorIdx; /* Index value to use with a
* selected color palette. * selected color palette.
* An index value of 0xFFFF * An index value of 0xFFFF
@ -148,7 +148,7 @@ struct BaseGlyphRecord
} }
public: public:
HBGlyphID glyphId; /* Glyph ID of reference glyph */ HBGlyphID16 glyphId; /* Glyph ID of reference glyph */
HBUINT16 firstLayerIdx; /* Index (from beginning of HBUINT16 firstLayerIdx; /* Index (from beginning of
* the Layer Records) to the * the Layer Records) to the
* layer record. There will be * layer record. There will be
@ -797,7 +797,7 @@ struct BaseGlyphV1Record
} }
public: public:
HBGlyphID glyphId; /* Glyph ID of reference glyph */ HBGlyphID16 glyphId; /* Glyph ID of reference glyph */
Offset32To<Paint> paint; /* Offset (from beginning of BaseGlyphV1Record array) to Paint, Offset32To<Paint> paint; /* Offset (from beginning of BaseGlyphV1Record array) to Paint,
* Typically PaintColrLayers */ * Typically PaintColrLayers */
public: public:

View File

@ -388,7 +388,7 @@ struct glyf
protected: protected:
HBUINT16 flags; HBUINT16 flags;
HBGlyphID glyphIndex; HBGlyphID16 glyphIndex;
public: public:
DEFINE_SIZE_MIN (4); DEFINE_SIZE_MIN (4);
}; };

View File

@ -73,7 +73,7 @@ struct BaseCoordFormat2
protected: protected:
HBUINT16 format; /* Format identifier--format = 2 */ HBUINT16 format; /* Format identifier--format = 2 */
FWORD coordinate; /* X or Y value, in design units */ FWORD coordinate; /* X or Y value, in design units */
HBGlyphID referenceGlyph; /* Glyph ID of control glyph */ HBGlyphID16 referenceGlyph; /* Glyph ID of control glyph */
HBUINT16 coordPoint; /* Index of contour point on the HBUINT16 coordPoint; /* Index of contour point on the
* reference glyph */ * reference glyph */
public: public:

View File

@ -89,7 +89,7 @@ static inline void ClassDef_serialize (hb_serialize_context_t *c,
static void ClassDef_remap_and_serialize (hb_serialize_context_t *c, static void ClassDef_remap_and_serialize (hb_serialize_context_t *c,
const hb_map_t &gid_klass_map, const hb_map_t &gid_klass_map,
hb_sorted_vector_t<HBGlyphID> &glyphs, hb_sorted_vector_t<HBGlyphID16> &glyphs,
const hb_set_t &klasses, const hb_set_t &klasses,
bool use_class_zero, bool use_class_zero,
hb_map_t *klass_map /*INOUT*/); hb_map_t *klass_map /*INOUT*/);
@ -508,8 +508,8 @@ struct RangeRecord
bool collect_coverage (set_t *glyphs) const bool collect_coverage (set_t *glyphs) const
{ return glyphs->add_range (first, last); } { return glyphs->add_range (first, last); }
HBGlyphID first; /* First GlyphID in the range */ HBGlyphID16 first; /* First GlyphID in the range */
HBGlyphID last; /* Last GlyphID in the range */ HBGlyphID16 last; /* Last GlyphID in the range */
HBUINT16 value; /* Value */ HBUINT16 value; /* Value */
public: public:
DEFINE_SIZE_STATIC (6); DEFINE_SIZE_STATIC (6);
@ -1454,7 +1454,7 @@ struct CoverageFormat1
protected: protected:
HBUINT16 coverageFormat; /* Format identifier--format = 1 */ HBUINT16 coverageFormat; /* Format identifier--format = 1 */
SortedArray16Of<HBGlyphID> SortedArray16Of<HBGlyphID16>
glyphArray; /* Array of GlyphIDs--in numerical order */ glyphArray; /* Array of GlyphIDs--in numerical order */
public: public:
DEFINE_SIZE_ARRAY (4, glyphArray); DEFINE_SIZE_ARRAY (4, glyphArray);
@ -1832,7 +1832,7 @@ Coverage_serialize (hb_serialize_context_t *c,
static void ClassDef_remap_and_serialize (hb_serialize_context_t *c, static void ClassDef_remap_and_serialize (hb_serialize_context_t *c,
const hb_map_t &gid_klass_map, const hb_map_t &gid_klass_map,
hb_sorted_vector_t<HBGlyphID> &glyphs, hb_sorted_vector_t<HBGlyphID16> &glyphs,
const hb_set_t &klasses, const hb_set_t &klasses,
bool use_class_zero, bool use_class_zero,
hb_map_t *klass_map /*INOUT*/) hb_map_t *klass_map /*INOUT*/)
@ -1859,7 +1859,7 @@ static void ClassDef_remap_and_serialize (hb_serialize_context_t *c,
auto it = auto it =
+ glyphs.iter () + glyphs.iter ()
| hb_map_retains_sorting ([&] (const HBGlyphID& gid) -> hb_pair_t<hb_codepoint_t, unsigned> | hb_map_retains_sorting ([&] (const HBGlyphID16& gid) -> hb_pair_t<hb_codepoint_t, unsigned>
{ {
unsigned new_klass = klass_map->get (gid_klass_map[gid]); unsigned new_klass = klass_map->get (gid_klass_map[gid]);
return hb_pair ((hb_codepoint_t)gid, new_klass); return hb_pair ((hb_codepoint_t)gid, new_klass);
@ -1926,7 +1926,7 @@ struct ClassDefFormat1
const hb_set_t &glyphset = *c->plan->glyphset_gsub (); const hb_set_t &glyphset = *c->plan->glyphset_gsub ();
const hb_map_t &glyph_map = *c->plan->glyph_map; const hb_map_t &glyph_map = *c->plan->glyph_map;
hb_sorted_vector_t<HBGlyphID> glyphs; hb_sorted_vector_t<HBGlyphID16> glyphs;
hb_set_t orig_klasses; hb_set_t orig_klasses;
hb_map_t gid_org_klass_map; hb_map_t gid_org_klass_map;
@ -2046,7 +2046,7 @@ struct ClassDefFormat1
protected: protected:
HBUINT16 classFormat; /* Format identifier--format = 1 */ HBUINT16 classFormat; /* Format identifier--format = 1 */
HBGlyphID startGlyph; /* First GlyphID of the classValueArray */ HBGlyphID16 startGlyph; /* First GlyphID of the classValueArray */
Array16Of<HBUINT16> Array16Of<HBUINT16>
classValue; /* Array of Class Values--one per GlyphID */ classValue; /* Array of Class Values--one per GlyphID */
public: public:
@ -2128,7 +2128,7 @@ struct ClassDefFormat2
const hb_set_t &glyphset = *c->plan->glyphset_gsub (); const hb_set_t &glyphset = *c->plan->glyphset_gsub ();
const hb_map_t &glyph_map = *c->plan->glyph_map; const hb_map_t &glyph_map = *c->plan->glyph_map;
hb_sorted_vector_t<HBGlyphID> glyphs; hb_sorted_vector_t<HBGlyphID16> glyphs;
hb_set_t orig_klasses; hb_set_t orig_klasses;
hb_map_t gid_org_klass_map; hb_map_t gid_org_klass_map;

View File

@ -1144,7 +1144,7 @@ struct PairValueRecord
} }
protected: protected:
HBGlyphID secondGlyph; /* GlyphID of second glyph in the HBGlyphID16 secondGlyph; /* GlyphID of second glyph in the
* pair--first glyph is listed in the * pair--first glyph is listed in the
* Coverage table */ * Coverage table */
ValueRecord values; /* Positioning data for the first glyph ValueRecord values; /* Positioning data for the first glyph

View File

@ -225,7 +225,7 @@ struct SingleSubstFormat2
+ hb_zip (this+coverage, substitute) + hb_zip (this+coverage, substitute)
| hb_filter (glyphset, hb_first) | hb_filter (glyphset, hb_first)
| hb_filter (glyphset, hb_second) | hb_filter (glyphset, hb_second)
| hb_map_retains_sorting ([&] (hb_pair_t<hb_codepoint_t, const HBGlyphID &> p) -> hb_codepoint_pair_t | hb_map_retains_sorting ([&] (hb_pair_t<hb_codepoint_t, const HBGlyphID16 &> p) -> hb_codepoint_pair_t
{ return hb_pair (glyph_map[p.first], glyph_map[p.second]); }) { return hb_pair (glyph_map[p.first], glyph_map[p.second]); })
; ;
@ -245,7 +245,7 @@ struct SingleSubstFormat2
Offset16To<Coverage> Offset16To<Coverage>
coverage; /* Offset to Coverage table--from coverage; /* Offset to Coverage table--from
* beginning of Substitution table */ * beginning of Substitution table */
Array16Of<HBGlyphID> Array16Of<HBGlyphID16>
substitute; /* Array of substitute substitute; /* Array of substitute
* GlyphIDs--ordered by Coverage Index */ * GlyphIDs--ordered by Coverage Index */
public: public:
@ -391,7 +391,7 @@ struct Sequence
} }
protected: protected:
Array16Of<HBGlyphID> Array16Of<HBGlyphID16>
substitute; /* String of GlyphIDs to substitute */ substitute; /* String of GlyphIDs to substitute */
public: public:
DEFINE_SIZE_ARRAY (2, substitute); DEFINE_SIZE_ARRAY (2, substitute);
@ -443,9 +443,9 @@ struct MultipleSubstFormat1
} }
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const unsigned int> substitute_len_list, hb_array_t<const unsigned int> substitute_len_list,
hb_array_t<const HBGlyphID> substitute_glyphs_list) hb_array_t<const HBGlyphID16> substitute_glyphs_list)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (this))) return_trace (false); if (unlikely (!c->extend_min (this))) return_trace (false);
@ -504,9 +504,9 @@ struct MultipleSubstFormat1
struct MultipleSubst struct MultipleSubst
{ {
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const unsigned int> substitute_len_list, hb_array_t<const unsigned int> substitute_len_list,
hb_array_t<const HBGlyphID> substitute_glyphs_list) hb_array_t<const HBGlyphID16> substitute_glyphs_list)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (u.format))) return_trace (false); if (unlikely (!c->extend_min (u.format))) return_trace (false);
@ -624,7 +624,7 @@ struct AlternateSet
} }
protected: protected:
Array16Of<HBGlyphID> Array16Of<HBGlyphID16>
alternates; /* Array of alternate GlyphIDs--in alternates; /* Array of alternate GlyphIDs--in
* arbitrary order */ * arbitrary order */
public: public:
@ -686,9 +686,9 @@ struct AlternateSubstFormat1
} }
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const unsigned int> alternate_len_list, hb_array_t<const unsigned int> alternate_len_list,
hb_array_t<const HBGlyphID> alternate_glyphs_list) hb_array_t<const HBGlyphID16> alternate_glyphs_list)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (this))) return_trace (false); if (unlikely (!c->extend_min (this))) return_trace (false);
@ -747,9 +747,9 @@ struct AlternateSubstFormat1
struct AlternateSubst struct AlternateSubst
{ {
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const unsigned int> alternate_len_list, hb_array_t<const unsigned int> alternate_len_list,
hb_array_t<const HBGlyphID> alternate_glyphs_list) hb_array_t<const HBGlyphID16> alternate_glyphs_list)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (u.format))) return_trace (false); if (unlikely (!c->extend_min (u.format))) return_trace (false);
@ -888,8 +888,8 @@ struct Ligature
} }
protected: protected:
HBGlyphID ligGlyph; /* GlyphID of ligature to substitute */ HBGlyphID16 ligGlyph; /* GlyphID of ligature to substitute */
HeadlessArrayOf<HBGlyphID> HeadlessArrayOf<HBGlyphID16>
component; /* Array of component GlyphIDs--start component; /* Array of component GlyphIDs--start
* with the second component--ordered * with the second component--ordered
* in writing direction */ * in writing direction */
@ -949,9 +949,9 @@ struct LigatureSet
} }
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_array_t<const HBGlyphID> ligatures, hb_array_t<const HBGlyphID16> ligatures,
hb_array_t<const unsigned int> component_count_list, hb_array_t<const unsigned int> component_count_list,
hb_array_t<const HBGlyphID> &component_list /* Starting from second for each ligature */) hb_array_t<const HBGlyphID16> &component_list /* Starting from second for each ligature */)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (this))) return_trace (false); if (unlikely (!c->extend_min (this))) return_trace (false);
@ -1059,11 +1059,11 @@ struct LigatureSubstFormat1
} }
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_sorted_array_t<const HBGlyphID> first_glyphs, hb_sorted_array_t<const HBGlyphID16> first_glyphs,
hb_array_t<const unsigned int> ligature_per_first_glyph_count_list, hb_array_t<const unsigned int> ligature_per_first_glyph_count_list,
hb_array_t<const HBGlyphID> ligatures_list, hb_array_t<const HBGlyphID16> ligatures_list,
hb_array_t<const unsigned int> component_count_list, hb_array_t<const unsigned int> component_count_list,
hb_array_t<const HBGlyphID> component_list /* Starting from second for each ligature */) hb_array_t<const HBGlyphID16> component_list /* Starting from second for each ligature */)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (this))) return_trace (false); if (unlikely (!c->extend_min (this))) return_trace (false);
@ -1125,11 +1125,11 @@ struct LigatureSubstFormat1
struct LigatureSubst struct LigatureSubst
{ {
bool serialize (hb_serialize_context_t *c, bool serialize (hb_serialize_context_t *c,
hb_sorted_array_t<const HBGlyphID> first_glyphs, hb_sorted_array_t<const HBGlyphID16> first_glyphs,
hb_array_t<const unsigned int> ligature_per_first_glyph_count_list, hb_array_t<const unsigned int> ligature_per_first_glyph_count_list,
hb_array_t<const HBGlyphID> ligatures_list, hb_array_t<const HBGlyphID16> ligatures_list,
hb_array_t<const unsigned int> component_count_list, hb_array_t<const unsigned int> component_count_list,
hb_array_t<const HBGlyphID> component_list /* Starting from second for each ligature */) hb_array_t<const HBGlyphID16> component_list /* Starting from second for each ligature */)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (u.format))) return_trace (false); if (unlikely (!c->extend_min (u.format))) return_trace (false);
@ -1208,7 +1208,7 @@ struct ReverseChainSingleSubstFormat1
if (!intersects (c->glyphs)) return; if (!intersects (c->glyphs)) return;
const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack); const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack);
const Array16Of<HBGlyphID> &substitute = StructAfter<Array16Of<HBGlyphID>> (lookahead); const Array16Of<HBGlyphID16> &substitute = StructAfter<Array16Of<HBGlyphID16>> (lookahead);
+ hb_zip (this+coverage, substitute) + hb_zip (this+coverage, substitute)
| hb_filter (c->parent_active_glyphs (), hb_first) | hb_filter (c->parent_active_glyphs (), hb_first)
@ -1234,7 +1234,7 @@ struct ReverseChainSingleSubstFormat1
for (unsigned int i = 0; i < count; i++) for (unsigned int i = 0; i < count; i++)
if (unlikely (!(this+lookahead[i]).collect_coverage (c->after))) return; if (unlikely (!(this+lookahead[i]).collect_coverage (c->after))) return;
const Array16Of<HBGlyphID> &substitute = StructAfter<Array16Of<HBGlyphID>> (lookahead); const Array16Of<HBGlyphID16> &substitute = StructAfter<Array16Of<HBGlyphID16>> (lookahead);
count = substitute.len; count = substitute.len;
c->output->add_array (substitute.arrayZ, substitute.len); c->output->add_array (substitute.arrayZ, substitute.len);
} }
@ -1254,7 +1254,7 @@ struct ReverseChainSingleSubstFormat1
if (likely (index == NOT_COVERED)) return_trace (false); if (likely (index == NOT_COVERED)) return_trace (false);
const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack); const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack);
const Array16Of<HBGlyphID> &substitute = StructAfter<Array16Of<HBGlyphID>> (lookahead); const Array16Of<HBGlyphID16> &substitute = StructAfter<Array16Of<HBGlyphID16>> (lookahead);
if (unlikely (index >= substitute.len)) return_trace (false); if (unlikely (index >= substitute.len)) return_trace (false);
@ -1317,7 +1317,7 @@ struct ReverseChainSingleSubstFormat1
if (!serialize_coverage_offset_array (c, backtrack_iter)) return_trace (false); if (!serialize_coverage_offset_array (c, backtrack_iter)) return_trace (false);
if (!serialize_coverage_offset_array (c, lookahead_iter)) return_trace (false); if (!serialize_coverage_offset_array (c, lookahead_iter)) return_trace (false);
auto *substitute_out = c->serializer->start_embed<Array16Of<HBGlyphID>> (); auto *substitute_out = c->serializer->start_embed<Array16Of<HBGlyphID16>> ();
auto substitutes = auto substitutes =
+ coverage_subst_iter + coverage_subst_iter
| hb_map (hb_second) | hb_map (hb_second)
@ -1342,13 +1342,13 @@ struct ReverseChainSingleSubstFormat1
const hb_map_t &glyph_map = *c->plan->glyph_map; const hb_map_t &glyph_map = *c->plan->glyph_map;
const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack); const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack);
const Array16Of<HBGlyphID> &substitute = StructAfter<Array16Of<HBGlyphID>> (lookahead); const Array16Of<HBGlyphID16> &substitute = StructAfter<Array16Of<HBGlyphID16>> (lookahead);
auto it = auto it =
+ hb_zip (this+coverage, substitute) + hb_zip (this+coverage, substitute)
| hb_filter (glyphset, hb_first) | hb_filter (glyphset, hb_first)
| hb_filter (glyphset, hb_second) | hb_filter (glyphset, hb_second)
| hb_map_retains_sorting ([&] (hb_pair_t<hb_codepoint_t, const HBGlyphID &> p) -> hb_codepoint_pair_t | hb_map_retains_sorting ([&] (hb_pair_t<hb_codepoint_t, const HBGlyphID16 &> p) -> hb_codepoint_pair_t
{ return hb_pair (glyph_map[p.first], glyph_map[p.second]); }) { return hb_pair (glyph_map[p.first], glyph_map[p.second]); })
; ;
@ -1363,7 +1363,7 @@ struct ReverseChainSingleSubstFormat1
const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack); const Array16OfOffset16To<Coverage> &lookahead = StructAfter<Array16OfOffset16To<Coverage>> (backtrack);
if (!lookahead.sanitize (c, this)) if (!lookahead.sanitize (c, this))
return_trace (false); return_trace (false);
const Array16Of<HBGlyphID> &substitute = StructAfter<Array16Of<HBGlyphID>> (lookahead); const Array16Of<HBGlyphID16> &substitute = StructAfter<Array16Of<HBGlyphID16>> (lookahead);
return_trace (substitute.sanitize (c)); return_trace (substitute.sanitize (c));
} }
@ -1380,7 +1380,7 @@ struct ReverseChainSingleSubstFormat1
lookaheadX; /* Array of coverage tables lookaheadX; /* Array of coverage tables
* in lookahead sequence, in glyph * in lookahead sequence, in glyph
* sequence order */ * sequence order */
Array16Of<HBGlyphID> Array16Of<HBGlyphID16>
substituteX; /* Array of substitute substituteX; /* Array of substitute
* GlyphIDs--ordered by Coverage Index */ * GlyphIDs--ordered by Coverage Index */
public: public:
@ -1561,8 +1561,8 @@ struct SubstLookup : Lookup
bool serialize_single (hb_serialize_context_t *c, bool serialize_single (hb_serialize_context_t *c,
uint32_t lookup_props, uint32_t lookup_props,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const HBGlyphID> substitutes) hb_array_t<const HBGlyphID16> substitutes)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!Lookup::serialize (c, SubTable::Single, lookup_props, 1))) return_trace (false); if (unlikely (!Lookup::serialize (c, SubTable::Single, lookup_props, 1))) return_trace (false);
@ -1577,9 +1577,9 @@ struct SubstLookup : Lookup
bool serialize_multiple (hb_serialize_context_t *c, bool serialize_multiple (hb_serialize_context_t *c,
uint32_t lookup_props, uint32_t lookup_props,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const unsigned int> substitute_len_list, hb_array_t<const unsigned int> substitute_len_list,
hb_array_t<const HBGlyphID> substitute_glyphs_list) hb_array_t<const HBGlyphID16> substitute_glyphs_list)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!Lookup::serialize (c, SubTable::Multiple, lookup_props, 1))) return_trace (false); if (unlikely (!Lookup::serialize (c, SubTable::Multiple, lookup_props, 1))) return_trace (false);
@ -1598,9 +1598,9 @@ struct SubstLookup : Lookup
bool serialize_alternate (hb_serialize_context_t *c, bool serialize_alternate (hb_serialize_context_t *c,
uint32_t lookup_props, uint32_t lookup_props,
hb_sorted_array_t<const HBGlyphID> glyphs, hb_sorted_array_t<const HBGlyphID16> glyphs,
hb_array_t<const unsigned int> alternate_len_list, hb_array_t<const unsigned int> alternate_len_list,
hb_array_t<const HBGlyphID> alternate_glyphs_list) hb_array_t<const HBGlyphID16> alternate_glyphs_list)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!Lookup::serialize (c, SubTable::Alternate, lookup_props, 1))) return_trace (false); if (unlikely (!Lookup::serialize (c, SubTable::Alternate, lookup_props, 1))) return_trace (false);
@ -1620,11 +1620,11 @@ struct SubstLookup : Lookup
bool serialize_ligature (hb_serialize_context_t *c, bool serialize_ligature (hb_serialize_context_t *c,
uint32_t lookup_props, uint32_t lookup_props,
hb_sorted_array_t<const HBGlyphID> first_glyphs, hb_sorted_array_t<const HBGlyphID16> first_glyphs,
hb_array_t<const unsigned int> ligature_per_first_glyph_count_list, hb_array_t<const unsigned int> ligature_per_first_glyph_count_list,
hb_array_t<const HBGlyphID> ligatures_list, hb_array_t<const HBGlyphID16> ligatures_list,
hb_array_t<const unsigned int> component_count_list, hb_array_t<const unsigned int> component_count_list,
hb_array_t<const HBGlyphID> component_list /* Starting from second for each ligature */) hb_array_t<const HBGlyphID16> component_list /* Starting from second for each ligature */)
{ {
TRACE_SERIALIZE (this); TRACE_SERIALIZE (this);
if (unlikely (!Lookup::serialize (c, SubTable::Ligature, lookup_props, 1))) return_trace (false); if (unlikely (!Lookup::serialize (c, SubTable::Ligature, lookup_props, 1))) return_trace (false);

View File

@ -136,7 +136,7 @@ struct JstfLangSys : List16OfOffset16To<JstfPriority>
* ExtenderGlyphs -- Extender Glyph Table * ExtenderGlyphs -- Extender Glyph Table
*/ */
typedef SortedArray16Of<HBGlyphID> ExtenderGlyphs; typedef SortedArray16Of<HBGlyphID16> ExtenderGlyphs;
/* /*

View File

@ -427,7 +427,7 @@ struct MathGlyphVariantRecord
} }
protected: protected:
HBGlyphID variantGlyph; /* Glyph ID for the variant. */ HBGlyphID16 variantGlyph; /* Glyph ID for the variant. */
HBUINT16 advanceMeasurement; /* Advance width/height, in design units, of the HBUINT16 advanceMeasurement; /* Advance width/height, in design units, of the
* variant, in the direction of requested * variant, in the direction of requested
* glyph extension. */ * glyph extension. */
@ -475,7 +475,7 @@ struct MathGlyphPartRecord
} }
protected: protected:
HBGlyphID glyph; /* Glyph ID for the part. */ HBGlyphID16 glyph; /* Glyph ID for the part. */
HBUINT16 startConnectorLength; HBUINT16 startConnectorLength;
/* Advance width/ height of the straight bar /* Advance width/ height of the straight bar
* connector material, in design units, is at * connector material, in design units, is at

View File

@ -49,8 +49,8 @@ arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan HB_UNUS
hb_font_t *font, hb_font_t *font,
unsigned int feature_index) unsigned int feature_index)
{ {
OT::HBGlyphID glyphs[SHAPING_TABLE_LAST - SHAPING_TABLE_FIRST + 1]; OT::HBGlyphID16 glyphs[SHAPING_TABLE_LAST - SHAPING_TABLE_FIRST + 1];
OT::HBGlyphID substitutes[SHAPING_TABLE_LAST - SHAPING_TABLE_FIRST + 1]; OT::HBGlyphID16 substitutes[SHAPING_TABLE_LAST - SHAPING_TABLE_FIRST + 1];
unsigned int num_glyphs = 0; unsigned int num_glyphs = 0;
/* Populate arrays */ /* Populate arrays */
@ -78,7 +78,7 @@ arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan HB_UNUS
/* Bubble-sort or something equally good! /* Bubble-sort or something equally good!
* May not be good-enough for presidential candidate interviews, but good-enough for us... */ * May not be good-enough for presidential candidate interviews, but good-enough for us... */
hb_stable_sort (&glyphs[0], num_glyphs, hb_stable_sort (&glyphs[0], num_glyphs,
(int(*)(const OT::HBUINT16*, const OT::HBUINT16 *)) OT::HBGlyphID::cmp, (int(*)(const OT::HBUINT16*, const OT::HBUINT16 *)) OT::HBGlyphID16::cmp,
&substitutes[0]); &substitutes[0]);
@ -99,15 +99,15 @@ static OT::SubstLookup *
arabic_fallback_synthesize_lookup_ligature (const hb_ot_shape_plan_t *plan HB_UNUSED, arabic_fallback_synthesize_lookup_ligature (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_font_t *font) hb_font_t *font)
{ {
OT::HBGlyphID first_glyphs[ARRAY_LENGTH_CONST (ligature_table)]; OT::HBGlyphID16 first_glyphs[ARRAY_LENGTH_CONST (ligature_table)];
unsigned int first_glyphs_indirection[ARRAY_LENGTH_CONST (ligature_table)]; unsigned int first_glyphs_indirection[ARRAY_LENGTH_CONST (ligature_table)];
unsigned int ligature_per_first_glyph_count_list[ARRAY_LENGTH_CONST (first_glyphs)]; unsigned int ligature_per_first_glyph_count_list[ARRAY_LENGTH_CONST (first_glyphs)];
unsigned int num_first_glyphs = 0; unsigned int num_first_glyphs = 0;
/* We know that all our ligatures are 2-component */ /* We know that all our ligatures are 2-component */
OT::HBGlyphID ligature_list[ARRAY_LENGTH_CONST (first_glyphs) * ARRAY_LENGTH_CONST(ligature_table[0].ligatures)]; OT::HBGlyphID16 ligature_list[ARRAY_LENGTH_CONST (first_glyphs) * ARRAY_LENGTH_CONST(ligature_table[0].ligatures)];
unsigned int component_count_list[ARRAY_LENGTH_CONST (ligature_list)]; unsigned int component_count_list[ARRAY_LENGTH_CONST (ligature_list)];
OT::HBGlyphID component_list[ARRAY_LENGTH_CONST (ligature_list) * 1/* One extra component per ligature */]; OT::HBGlyphID16 component_list[ARRAY_LENGTH_CONST (ligature_list) * 1/* One extra component per ligature */];
unsigned int num_ligatures = 0; unsigned int num_ligatures = 0;
/* Populate arrays */ /* Populate arrays */
@ -125,7 +125,7 @@ arabic_fallback_synthesize_lookup_ligature (const hb_ot_shape_plan_t *plan HB_UN
num_first_glyphs++; num_first_glyphs++;
} }
hb_stable_sort (&first_glyphs[0], num_first_glyphs, hb_stable_sort (&first_glyphs[0], num_first_glyphs,
(int(*)(const OT::HBUINT16*, const OT::HBUINT16 *)) OT::HBGlyphID::cmp, (int(*)(const OT::HBUINT16*, const OT::HBUINT16 *)) OT::HBGlyphID16::cmp,
&first_glyphs_indirection[0]); &first_glyphs_indirection[0]);
/* Now that the first-glyphs are sorted, walk again, populate ligatures. */ /* Now that the first-glyphs are sorted, walk again, populate ligatures. */

View File

@ -48,7 +48,7 @@ struct VertOriginMetric
} }
public: public:
HBGlyphID glyph; HBGlyphID16 glyph;
FWORD vertOriginY; FWORD vertOriginY;
public: public: