}
/* Specializaiton for arbitrary-content arbitrary-sized Null objects. */
-#define DEFINE_NULL_DATA(Type, size, data) \
-static const char _Null##Type[size + 1] = data; /* +1 is for nul-termination in data */ \
+#define DEFINE_NULL_DATA(Type, data) \
+static const char _Null##Type[Type::min_size + 1] = data; /* +1 is for nul-termination in data */ \
template <> \
inline const Type& Null<Type> () { \
return *CastP<Type> (_Null##Type); \
inline operator char* (void) { return CharP(this); }
};
ASSERT_SIZE (Tag, 4);
-DEFINE_NULL_DATA (Tag, 4, " ");
+DEFINE_NULL_DATA (Tag, " ");
/* Glyph index number, same as uint16 (length = 16 bits) */
typedef USHORT GlyphID;
&& featureIndex.sanitize (context);
}
+ DEFINE_SIZE_STATIC (6);
+
Offset lookupOrder; /* = Null (reserved for an offset to a
* reordering table) */
USHORT reqFeatureIndex;/* Index of a feature required for this
* = 0xFFFF */
IndexArray featureIndex; /* Array of indices into the FeatureList */
};
-ASSERT_SIZE (LangSys, 6);
-DEFINE_NULL_DATA (LangSys, 6, "\0\0\xFF\xFF");
+DEFINE_NULL_DATA (LangSys, "\0\0\xFF\xFF");
struct Script
USHORT startCoverageIndex; /* Coverage Index of first GlyphID in
* range */
};
-DEFINE_NULL_DATA (CoverageRangeRecord, 6, "\000\001");
+DEFINE_NULL_DATA (CoverageRangeRecord, "\000\001");
struct CoverageFormat2
{
GlyphID end; /* Last GlyphID 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
{