Add hb_var_int_t
diff --git a/src/hb-buffer.h b/src/hb-buffer.h
index e6d477d..c2dc29f 100644
--- a/src/hb-buffer.h
+++ b/src/hb-buffer.h
@@ -41,8 +41,8 @@
   hb_codepoint_t codepoint;
   hb_mask_t      mask;
   uint32_t       cluster;
-  uint32_t       internal1;
-  uint32_t       internal2;
+  hb_var_int_t   var1;
+  hb_var_int_t   var2;
 } hb_glyph_info_t;
 
 typedef struct _hb_glyph_position_t {
@@ -50,7 +50,7 @@
   hb_position_t  y_advance;
   hb_position_t  x_offset;
   hb_position_t  y_offset;
-  uint32_t       internal;
+  hb_var_int_t   var1;
 } hb_glyph_position_t;
 
 
diff --git a/src/hb-common.h b/src/hb-common.h
index 85906c5..1dd02cb 100644
--- a/src/hb-common.h
+++ b/src/hb-common.h
@@ -91,6 +91,16 @@
 #define HB_DIRECTION_REVERSE(dir)	((hb_direction_t) (((unsigned int) (dir)) ^ 1))
 
 
+typedef union _hb_var_int_t {
+  uint32_t u32;
+  int32_t i32;
+  uint16_t u16[2];
+  int16_t i16[2];
+  uint8_t u8[4];
+  int8_t i8[4];
+} hb_var_int_t;
+
+
 HB_END_DECLS
 
 #endif /* HB_COMMON_H */