Simplify DEFINE_NULL_DATA
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 6 May 2010 23:35:19 +0000 (19:35 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 6 May 2010 23:35:19 +0000 (19:35 -0400)
Using ::min_size.

src/hb-open-type-private.hh
src/hb-ot-layout-common-private.hh

index b0daf41..c4f2709 100644 (file)
@@ -123,8 +123,8 @@ static inline const Type& Null () {
 }
 
 /* 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); \
@@ -397,7 +397,7 @@ struct Tag : ULONG
   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;
index 97002cb..d73a21a 100644 (file)
@@ -170,6 +170,8 @@ struct LangSys
        && 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
@@ -177,8 +179,7 @@ struct LangSys
                                 * = 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
@@ -372,7 +373,7 @@ struct CoverageRangeRecord
   USHORT       startCoverageIndex;     /* Coverage Index of first GlyphID in
                                         * range */
 };
-DEFINE_NULL_DATA (CoverageRangeRecord, 6, "\000\001");
+DEFINE_NULL_DATA (CoverageRangeRecord, "\000\001");
 
 struct CoverageFormat2
 {
@@ -492,7 +493,7 @@ struct ClassRangeRecord
   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
 {