diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh
index 45ed801..c6c9811 100644
--- a/src/hb-open-type-private.hh
+++ b/src/hb-open-type-private.hh
@@ -120,7 +120,7 @@
 /* Generic template for nul-content sizeof-sized Null objects. */
 template <typename Type>
 static inline const Type& Null () {
-  ASSERT_STATIC (sizeof (Type) <= sizeof (_NullPool));
+  ASSERT_STATIC (Type::min_size <= sizeof (_NullPool));
   return *CastP<Type> (_NullPool);
 }
 
@@ -673,7 +673,10 @@
   }
 
   USHORT len;
-/*Type array[VAR];*/
+  private:
+  Type arrayX[VAR];
+  public:
+  DEFINE_SIZE_VAR (sizeof (USHORT), Type);
 };
 
 
diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh
index 094f3a8..324b7bd 100644
--- a/src/hb-ot-layout-common-private.hh
+++ b/src/hb-ot-layout-common-private.hh
@@ -439,6 +439,8 @@
   CoverageFormat1	format1[VAR];
   CoverageFormat2	format2[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 
@@ -559,6 +561,8 @@
   ClassDefFormat1	format1[VAR];
   ClassDefFormat2	format2[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 
diff --git a/src/hb-ot-layout-gdef-private.hh b/src/hb-ot-layout-gdef-private.hh
index 20d6b92..456efca 100644
--- a/src/hb-ot-layout-gdef-private.hh
+++ b/src/hb-ot-layout-gdef-private.hh
@@ -195,6 +195,8 @@
   CaretValueFormat2	format2[VAR];
   CaretValueFormat3	format3[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 struct LigGlyph
@@ -309,6 +311,8 @@
   USHORT		format;		/* Format identifier */
   MarkGlyphSetsFormat1	format1[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 
diff --git a/src/hb-ot-layout-gpos-private.hh b/src/hb-ot-layout-gpos-private.hh
index c890585..a84210a 100644
--- a/src/hb-ot-layout-gpos-private.hh
+++ b/src/hb-ot-layout-gpos-private.hh
@@ -335,6 +335,8 @@
   AnchorFormat2		format2[VAR];
   AnchorFormat3		format3[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 
@@ -460,7 +462,7 @@
 					 * value(s)--applied to all glyphs in
 					 * the Coverage table */
   public:
-  DEFINE_SIZE_VAR (6, ValueRecord);
+  DEFINE_SIZE_VAR (6, Value);
 };
 
 struct SinglePosFormat2
@@ -504,7 +506,7 @@
   ValueRecord	values;			/* Array of ValueRecords--positioning
 					 * values applied to glyphs */
   public:
-  DEFINE_SIZE_VAR (8, ValueRecord);
+  DEFINE_SIZE_VAR (8, Value);
 };
 
 struct SinglePos
@@ -552,7 +554,7 @@
   ValueRecord	values;			/* Positioning data for the first glyph
 					 * followed by for second glyph */
   public:
-  DEFINE_SIZE_VAR (2, ValueRecord);
+  DEFINE_SIZE_VAR (2, Value);
 };
 
 struct PairSet
@@ -1487,6 +1489,8 @@
   ChainContextPos	chainContext[VAR];
   ExtensionPos		extension[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 
diff --git a/src/hb-ot-layout-gsub-private.hh b/src/hb-ot-layout-gsub-private.hh
index da32cb1..c562dea 100644
--- a/src/hb-ot-layout-gsub-private.hh
+++ b/src/hb-ot-layout-gsub-private.hh
@@ -443,7 +443,7 @@
 					 * with the second  component--ordered
 					 * in writing direction */
   public:
-  DEFINE_SIZE_STATIC (4);
+  DEFINE_SIZE_VAR (4, GlyphID);
 };
 
 struct LigatureSet
@@ -758,6 +758,8 @@
   ExtensionSubst		extension[VAR];
   ReverseChainSingleSubst	reverseChainContextSingle[VAR];
   } u;
+  public:
+  DEFINE_SIZE_MIN (2);
 };
 
 
diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh
index cc04de0..92521c5 100644
--- a/src/hb-ot-layout-gsubgpos-private.hh
+++ b/src/hb-ot-layout-gsubgpos-private.hh
@@ -330,6 +330,8 @@
   OffsetArrayOf<Rule>
 		rule;			/* Array of Rule tables
 					 * ordered by preference */
+  public:
+  DEFINE_SIZE_VAR (2, OffsetTo<Rule>);
 };
 
 
