Simplify DEFINE_NULL_DATA

Using ::min_size.
This commit is contained in:
Behdad Esfahbod 2010-05-06 19:35:19 -04:00
parent e45d3f86f9
commit 65f46b0033
2 changed files with 8 additions and 7 deletions

View File

@ -123,8 +123,8 @@ static inline const Type& Null () {
} }
/* Specializaiton for arbitrary-content arbitrary-sized Null objects. */ /* Specializaiton for arbitrary-content arbitrary-sized Null objects. */
#define DEFINE_NULL_DATA(Type, size, data) \ #define DEFINE_NULL_DATA(Type, data) \
static const char _Null##Type[size + 1] = data; /* +1 is for nul-termination in data */ \ static const char _Null##Type[Type::min_size + 1] = data; /* +1 is for nul-termination in data */ \
template <> \ template <> \
inline const Type& Null<Type> () { \ inline const Type& Null<Type> () { \
return *CastP<Type> (_Null##Type); \ return *CastP<Type> (_Null##Type); \
@ -397,7 +397,7 @@ struct Tag : ULONG
inline operator char* (void) { return CharP(this); } inline operator char* (void) { return CharP(this); }
}; };
ASSERT_SIZE (Tag, 4); ASSERT_SIZE (Tag, 4);
DEFINE_NULL_DATA (Tag, 4, " "); DEFINE_NULL_DATA (Tag, " ");
/* Glyph index number, same as uint16 (length = 16 bits) */ /* Glyph index number, same as uint16 (length = 16 bits) */
typedef USHORT GlyphID; typedef USHORT GlyphID;

View File

@ -170,6 +170,8 @@ struct LangSys
&& featureIndex.sanitize (context); && featureIndex.sanitize (context);
} }
DEFINE_SIZE_STATIC (6);
Offset lookupOrder; /* = Null (reserved for an offset to a Offset lookupOrder; /* = Null (reserved for an offset to a
* reordering table) */ * reordering table) */
USHORT reqFeatureIndex;/* Index of a feature required for this USHORT reqFeatureIndex;/* Index of a feature required for this
@ -177,8 +179,7 @@ struct LangSys
* = 0xFFFF */ * = 0xFFFF */
IndexArray featureIndex; /* Array of indices into the FeatureList */ IndexArray featureIndex; /* Array of indices into the FeatureList */
}; };
ASSERT_SIZE (LangSys, 6); DEFINE_NULL_DATA (LangSys, "\0\0\xFF\xFF");
DEFINE_NULL_DATA (LangSys, 6, "\0\0\xFF\xFF");
struct Script struct Script
@ -372,7 +373,7 @@ struct CoverageRangeRecord
USHORT startCoverageIndex; /* Coverage Index of first GlyphID in USHORT startCoverageIndex; /* Coverage Index of first GlyphID in
* range */ * range */
}; };
DEFINE_NULL_DATA (CoverageRangeRecord, 6, "\000\001"); DEFINE_NULL_DATA (CoverageRangeRecord, "\000\001");
struct CoverageFormat2 struct CoverageFormat2
{ {
@ -492,7 +493,7 @@ struct ClassRangeRecord
GlyphID end; /* Last GlyphID in the range */ GlyphID end; /* Last GlyphID in the range */
USHORT classValue; /* Applied to all glyphs in the range */ USHORT classValue; /* Applied to all glyphs in the range */
}; };
DEFINE_NULL_DATA (ClassRangeRecord, 6, "\000\001"); DEFINE_NULL_DATA (ClassRangeRecord, "\000\001");
struct ClassDefFormat2 struct ClassDefFormat2
{ {