[HB] Move code around

This commit is contained in:
Behdad Esfahbod 2009-08-14 18:40:56 -04:00
parent 3564ee5216
commit 80e2aa2e1b
2 changed files with 21 additions and 19 deletions

View File

@ -578,6 +578,27 @@ struct LongOffsetArrayOf : ArrayOf<LongOffsetTo<Type> > {};
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>

View File

@ -296,25 +296,6 @@ struct Lookup
};
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);