Cleanup DEFINE_SIZE_VAR2
diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 311f74b..5194771 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh
@@ -81,13 +81,13 @@ * Size checking */ -#define _DEFINE_SIZE_ASSERTION(_compare) \ +#define _DEFINE_SIZE_ASSERTION(_assertion) \ inline void _size_assertion (void) const \ - { ASSERT_STATIC ((sizeof (*this)) _compare); } + { ASSERT_STATIC (_assertion); } #define DEFINE_SIZE_STATIC(size) \ - _DEFINE_SIZE_ASSERTION (== (size)); \ + _DEFINE_SIZE_ASSERTION (sizeof (*this) == (size)); \ static const unsigned int static_size = (size); \ static const unsigned int min_size = (size) @@ -95,16 +95,20 @@ #define VAR 1 #define VAR0 (VAR+0) +#define DEFINE_SIZE_UNION(size, _member) \ + _DEFINE_SIZE_ASSERTION (this->u._member.static_size == (size)); \ + static const unsigned int min_size = (size) + #define DEFINE_SIZE_MIN(size) \ - _DEFINE_SIZE_ASSERTION (>= (size)); \ + _DEFINE_SIZE_ASSERTION (sizeof (*this) >= (size)); \ static const unsigned int min_size = (size) #define DEFINE_SIZE_VAR(size, _var_type) \ - _DEFINE_SIZE_ASSERTION (== (size) + VAR0 * sizeof (_var_type)); \ + _DEFINE_SIZE_ASSERTION (sizeof (*this) == (size) + VAR0 * sizeof (_var_type)); \ static const unsigned int min_size = (size) -#define DEFINE_SIZE_VAR2(size, _var_type1, _var_type2) \ - _DEFINE_SIZE_ASSERTION (== (size) + VAR0 * sizeof (_var_type1) + VAR0 * sizeof (_var_type2)); \ +#define DEFINE_SIZE_VAR2(size, array1, array2) \ + _DEFINE_SIZE_ASSERTION (sizeof (*this) == (size) + this->array1[0].static_size + this->array2[0].static_size); \ static const unsigned int min_size = (size)