[HB] Use OffsetTo<> in more places

This commit is contained in:
Behdad Esfahbod 2009-05-17 00:15:51 -04:00
parent 9e4d9d7b27
commit 3d54bd1293
2 changed files with 9 additions and 7 deletions

View File

@ -34,9 +34,7 @@
#define DEFINE_INDIRECT_GLYPH_ARRAY_LOOKUP(Type, name) \ #define DEFINE_INDIRECT_GLYPH_ARRAY_LOOKUP(Type, name) \
inline const Type& name (hb_codepoint_t glyph) { \ inline const Type& name (hb_codepoint_t glyph) { \
const Coverage &c = get_coverage (); \ return (*this)[(this+coverage)(glyph)]; \
unsigned int c_index = c.get_coverage (glyph); \
return (*this)[c_index]; \
} }
@ -78,10 +76,10 @@ struct AttachList {
private: private:
/* AttachPoint tables, in Coverage Index order */ /* AttachPoint tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (AttachPoint, attachPoint, glyphCount); DEFINE_OFFSET_ARRAY_TYPE (AttachPoint, attachPoint, glyphCount);
DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
private: private:
Offset coverage; /* Offset to Coverage table -- from OffsetTo<Coverage>
coverage; /* Offset to Coverage table -- from
* beginning of AttachList table */ * beginning of AttachList table */
USHORT glyphCount; /* Number of glyphs with attachment USHORT glyphCount; /* Number of glyphs with attachment
* points */ * points */
@ -199,10 +197,10 @@ struct LigCaretList {
private: private:
/* LigGlyph tables, in Coverage Index order */ /* LigGlyph tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (LigGlyph, ligGlyph, ligGlyphCount); DEFINE_OFFSET_ARRAY_TYPE (LigGlyph, ligGlyph, ligGlyphCount);
DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
private: private:
Offset coverage; /* Offset to Coverage table--from OffsetTo<Coverage>
coverage; /* Offset to Coverage table--from
* beginning of LigCaretList table */ * beginning of LigCaretList table */
USHORT ligGlyphCount; /* Number of ligature glyphs */ USHORT ligGlyphCount; /* Number of ligature glyphs */
Offset ligGlyph[]; /* Array of offsets to LigGlyph Offset ligGlyph[]; /* Array of offsets to LigGlyph

View File

@ -800,6 +800,10 @@ struct Coverage {
} }
} }
unsigned int operator() (hb_codepoint_t glyph_id) const {
return get_coverage (glyph_id);
}
private: private:
union { union {
USHORT coverageFormat; /* Format identifier */ USHORT coverageFormat; /* Format identifier */