[arrays] Move Supplier<> to hb-array.hh

This commit is contained in:
Behdad Esfahbod 2018-12-16 23:38:51 -05:00
parent 2a3fa3f82f
commit 92680361ec
2 changed files with 33 additions and 32 deletions

View File

@ -222,4 +222,37 @@ inline hb_sorted_array_t<T> hb_sorted_array (T *array, unsigned int len)
typedef hb_array_t<const char> hb_bytes_t; typedef hb_array_t<const char> hb_bytes_t;
/*
* Supplier
*/
template <typename Type>
struct Supplier : hb_array_t<const Type>
{
Supplier (const Type *array, unsigned int len_)
{
this->arrayZ = array;
this->len = len_;
}
Supplier (hb_array_t<const Type> v)
{
this->arrayZ = v.arrayZ;
this->len = v.len;
}
Supplier<Type> & operator += (unsigned int count)
{
if (unlikely (count > this->len))
count = this->len;
this->len -= count;
this->arrayZ += count;
return *this;
}
private:
Supplier (const Supplier<Type> &); /* Disallow copy */
Supplier<Type>& operator= (const Supplier<Type> &); /* Disallow copy */
};
#endif /* HB_ARRAY_HH */ #endif /* HB_ARRAY_HH */

View File

@ -637,38 +637,6 @@ struct hb_serialize_context_t
}; };
/*
* Supplier
*/
template <typename Type>
struct Supplier : hb_array_t<const Type>
{
Supplier (const Type *array, unsigned int len_)
{
this->arrayZ = array;
this->len = len_;
}
Supplier (hb_array_t<const Type> v)
{
this->arrayZ = v.arrayZ;
this->len = v.len;
}
Supplier<Type> & operator += (unsigned int count)
{
if (unlikely (count > this->len))
count = this->len;
this->len -= count;
this->arrayZ += count;
return *this;
}
private:
Supplier (const Supplier<Type> &); /* Disallow copy */
Supplier<Type>& operator= (const Supplier<Type> &); /* Disallow copy */
};
/* /*
* Big-endian integers. * Big-endian integers.