return true;
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE_THIS2 (coverage, attachPoint);
+ }
+
private:
OffsetTo<Coverage>
coverage; /* Offset to Coverage table -- from
return context->font->x_scale * coordinate / 0x10000;
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE_SELF ();
+ }
+
private:
USHORT caretValueFormat; /* Format identifier--format = 1 */
SHORT coordinate; /* X or Y value, in design units */
return /* TODO contour point */ 0;
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE_SELF ();
+ }
+
private:
USHORT caretValueFormat; /* Format identifier--format = 2 */
USHORT caretValuePoint; /* Contour point index on glyph */
((this+deviceTable).get_delta (context->font->x_ppem) << 6);
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE_SELF () && SANITIZE_THIS (deviceTable);
+ }
+
private:
USHORT caretValueFormat; /* Format identifier--format = 3 */
SHORT coordinate; /* X or Y value, in design units */
}
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ if (!SANITIZE (u.format)) return false;
+ switch (u.format) {
+ case 1: return u.format1->sanitize (SANITIZE_ARG);
+ case 2: return u.format2->sanitize (SANITIZE_ARG);
+ case 3: return u.format3->sanitize (SANITIZE_ARG);
+ default:return true;
+ }
+ }
+
private:
union {
USHORT format; /* Format identifier */
*caret_count = carets.len;
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE (carets);
+ }
+
private:
OffsetArrayOf<CaretValue>
carets; /* Offset rrray of CaretValue tables
return true;
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE_THIS2 (coverage, ligGlyph);
+ }
+
private:
OffsetTo<Coverage>
coverage; /* Offset to Coverage table--from
inline bool covers (unsigned int set_index, hb_codepoint_t glyph_id) const
{ return (this+coverage[set_index]).get_coverage (glyph_id) != NOT_COVERED; }
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ return SANITIZE_THIS (coverage);
+ }
+
private:
USHORT format; /* Format identifier--format = 1 */
LongOffsetArrayOf<Coverage>
}
}
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ if (!SANITIZE (u.format)) return false;
+ switch (u.format) {
+ case 1: return u.format1->sanitize (SANITIZE_ARG);
+ default:return true;
+ }
+ }
+
private:
union {
USHORT format; /* Format identifier */
inline bool mark_set_covers (unsigned int set_index, hb_codepoint_t glyph_id) const
{ return version >= 0x00010002 && (this+markGlyphSetsDef[0]).covers (set_index, glyph_id); }
+ bool sanitize (SANITIZE_ARG_DEF) {
+ if (!SANITIZE (version)) return false;
+ if (version.major != 1) return true;
+ return SANITIZE_THIS2 (glyphClassDef, attachList) &&
+ SANITIZE_THIS2 (ligCaretList, markAttachClassDef) &&
+ (version < 0x00010002 || SANITIZE_THIS (markGlyphSetsDef[0]));
+ }
+
private:
FixedVersion version; /* Version of the GDEF table--currently
* 0x00010002 */