diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index df8e7ee..8f2095a 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -84,26 +84,10 @@
   { return have_output? out_len : idx; }
   inline unsigned int next_serial (void) { return serial++; }
 
-
   HB_INTERNAL void allocate_var (unsigned int byte_i, unsigned int count, const char *owner);
   HB_INTERNAL void deallocate_var (unsigned int byte_i, unsigned int count, const char *owner);
   HB_INTERNAL void deallocate_var_all (void);
 
-  inline void allocate_var_8 (unsigned int var_num, unsigned int i, const char *owner)
-  { assert (var_num < 2 && i < 4); allocate_var (var_num * 4 + i, 1, owner); }
-  inline void allocate_var_16 (unsigned int var_num, unsigned int i, const char *owner)
-  { assert (var_num < 2 && i < 2); allocate_var (var_num * 4 + i * 2, 2, owner); }
-  inline void allocate_var_32 (unsigned int var_num, const char *owner)
-  { assert (var_num < 2); allocate_var (var_num * 4, 4, owner); }
-
-  inline void deallocate_var_8 (unsigned int var_num, unsigned int i, const char *owner)
-  { assert (var_num < 2 && i < 4); deallocate_var (var_num * 4 + i, 1, owner); }
-  inline void deallocate_var_16 (unsigned int var_num, unsigned int i, const char *owner)
-  { assert (var_num < 2 && i < 2); deallocate_var (var_num * 4 + i * 2, 2, owner); }
-  inline void deallocate_var_32 (unsigned int var_num, const char *owner)
-  { assert (var_num < 2); deallocate_var (var_num * 4, 4, owner); }
-
-
   HB_INTERNAL void add (hb_codepoint_t  codepoint,
 			hb_mask_t       mask,
 			unsigned int    cluster);
@@ -154,6 +138,15 @@
 };
 
 
+#define HB_BUFFER_XALLOCATE_VAR(b, func, var, owner) \
+  b->func (offsetof (hb_glyph_info_t, var) - offsetof(hb_glyph_info_t, var1), \
+	   sizeof (b->info[0].var), owner)
+#define HB_BUFFER_ALLOCATE_VAR(b, var) \
+	HB_BUFFER_XALLOCATE_VAR (b, allocate_var, var (), #var)
+#define HB_BUFFER_DEALLOCATE_VAR(b, var) \
+	HB_BUFFER_XALLOCATE_VAR (b, deallocate_var, var (), #var)
+
+
 HB_END_DECLS
 
 #endif /* HB_BUFFER_PRIVATE_HH */
