diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 0b17effa0..84e4aa23e 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -630,18 +630,15 @@ struct Index : USHORT { }; DEFINE_NULL_DATA (Index, "\xff\xff"); -/* GenericOffset, Null offset = 0 */ -template -struct GenericOffset : Type +/* Offset, Null offset = 0 */ +template +struct Offset : Type { inline bool is_null (void) const { return 0 == *this; } public: DEFINE_SIZE_STATIC (sizeof(Type)); }; -typedef GenericOffset Offset; -typedef GenericOffset LongOffset; - /* CheckSum */ struct CheckSum : ULONG @@ -688,12 +685,12 @@ struct FixedVersion /* - * Template subclasses of Offset and LongOffset that do the dereferencing. + * Template subclasses of Offset that do the dereferencing. * Use: (base+offset) */ template -struct OffsetTo : GenericOffset +struct OffsetTo : Offset { inline const Type& operator () (const void *base) const { diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 479fb2650..2ed14a237 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -204,7 +204,7 @@ struct LangSys return TRACE_RETURN (c->check_struct (this) && featureIndex.sanitize (c)); } - Offset lookupOrder; /* = Null (reserved for an offset to a + Offset<> lookupOrder; /* = Null (reserved for an offset to a * reordering table) */ USHORT reqFeatureIndex;/* Index of a feature required for this * language system--if no required features @@ -502,7 +502,7 @@ struct Feature * Adobe tools, only the 'size' feature had FeatureParams defined. */ - Offset orig_offset = featureParams; + Offset<> orig_offset = featureParams; if (unlikely (!featureParams.sanitize (c, this, closure ? closure->tag : HB_TAG_NONE))) return TRACE_RETURN (false); @@ -516,7 +516,7 @@ struct Feature unsigned int new_offset_int = (unsigned int) orig_offset - (((char *) this) - ((char *) closure->list_base)); - Offset new_offset; + Offset<> new_offset; /* Check that it did not overflow. */ new_offset.set (new_offset_int); if (new_offset == new_offset_int && @@ -609,7 +609,7 @@ struct Lookup USHORT lookupType; /* Different enumerations for GSUB and GPOS */ USHORT lookupFlag; /* Lookup qualifiers */ - ArrayOf + ArrayOf > subTable; /* Array of SubTables */ USHORT markFilteringSetX[VAR]; /* Index (base 0) into GDEF mark glyph sets * structure. This field is only present if bit