[HB] Move code around
diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh
index caf6857..bc3e90e 100644
--- a/src/hb-open-type-private.hh
+++ b/src/hb-open-type-private.hh
@@ -578,6 +578,27 @@
 template <typename Type>
 struct LongOffsetLongArrayOf : LongArrayOf<LongOffsetTo<Type> > {};
 
+/* Array of offsets relative to the beginning of the array itself. */
+template <typename Type>
+struct OffsetListOf : OffsetArrayOf<Type>
+{
+  inline const Type& operator [] (unsigned int i) const
+  {
+    if (HB_UNLIKELY (i >= this->len)) return Null(Type);
+    return this+this->array[i];
+  }
+
+  inline bool sanitize (SANITIZE_ARG_DEF) {
+    SANITIZE_DEBUG ();
+    return OffsetArrayOf<Type>::sanitize (SANITIZE_ARG, CONST_CHARP(this));
+  }
+  inline bool sanitize (SANITIZE_ARG_DEF, unsigned int user_data) {
+    SANITIZE_DEBUG ();
+    return OffsetArrayOf<Type>::sanitize (SANITIZE_ARG, CONST_CHARP(this), user_data);
+  }
+};
+
+
 /* An array with a USHORT number of elements,
  * starting at second element. */
 template <typename Type>
diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh
index fabb3a2..40a435e 100644
--- a/src/hb-ot-layout-common-private.hh
+++ b/src/hb-ot-layout-common-private.hh
@@ -296,25 +296,6 @@
 };
 ASSERT_SIZE (Lookup, 6);
 
-template <typename Type>
-struct OffsetListOf : OffsetArrayOf<Type>
-{
-  inline const Type& operator [] (unsigned int i) const
-  {
-    if (HB_UNLIKELY (i >= this->len)) return Null(Type);
-    return this+this->array[i];
-  }
-
-  inline bool sanitize (SANITIZE_ARG_DEF) {
-    SANITIZE_DEBUG ();
-    return OffsetArrayOf<Type>::sanitize (SANITIZE_ARG, CONST_CHARP(this));
-  }
-  inline bool sanitize (SANITIZE_ARG_DEF, unsigned int user_data) {
-    SANITIZE_DEBUG ();
-    return OffsetArrayOf<Type>::sanitize (SANITIZE_ARG, CONST_CHARP(this), user_data);
-  }
-};
-
 typedef OffsetListOf<Lookup> LookupList;
 ASSERT_SIZE (LookupList, 2);