[HarfBuzz] harfbuzz: Branch 'master'
Behdad Esfahbod
behdad at kemper.freedesktop.org
Sun Dec 2 01:08:31 UTC 2018
src/hb-open-type.hh | 13 ++++++++++---
src/hb-vector.hh | 2 ++
2 files changed, 12 insertions(+), 3 deletions(-)
New commits:
commit 2087f5a2a743380b36399ba8a2b4ff9e93890fcf
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Sat Dec 1 20:04:45 2018 -0500
Add casts to hb_array_t<>
diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh
index 0038ad8b..69cc5ccf 100644
--- a/src/hb-open-type.hh
+++ b/src/hb-open-type.hh
@@ -374,16 +374,17 @@ struct UnsizedArrayOf
return *p;
}
- template <typename T> inline operator T * (void) { return arrayZ; }
- template <typename T> inline operator const T * (void) const { return arrayZ; }
-
inline unsigned int get_size (unsigned int len) const
{ return len * Type::static_size; }
+ template <typename T> inline operator T * (void) { return arrayZ; }
+ template <typename T> inline operator const T * (void) const { return arrayZ; }
inline hb_array_t<Type> as_array (unsigned int len)
{ return hb_array (arrayZ, len); }
inline hb_array_t<const Type> as_array (unsigned int len) const
{ return hb_array (arrayZ, len); }
+ inline operator hb_array_t<Type> (void) { return as_array (); }
+ inline operator hb_array_t<const Type> (void) const { as_array (); }
template <typename T>
inline Type &lsearch (unsigned int len, const T &x, Type ¬_found = Crap (Type))
@@ -488,6 +489,8 @@ struct SortedUnsizedArrayOf : UnsizedArrayOf<Type>
{ return hb_sorted_array (this->arrayZ, len); }
inline hb_sorted_array_t<const Type> as_array (unsigned int len) const
{ return hb_sorted_array (this->arrayZ, len); }
+ inline operator hb_sorted_array_t<Type> (void) { return as_array (); }
+ inline operator hb_sorted_array_t<const Type> (void) const { as_array (); }
template <typename T>
inline Type &bsearch (unsigned int len, const T &x, Type ¬_found = Crap (Type))
@@ -533,6 +536,8 @@ struct ArrayOf
{ return hb_array (arrayZ, len); }
inline hb_array_t<const Type> as_array (void) const
{ return hb_array (arrayZ, len); }
+ inline operator hb_array_t<Type> (void) { return as_array (); }
+ inline operator hb_array_t<const Type> (void) const { as_array (); }
inline hb_array_t<const Type> sub_array (unsigned int start_offset, unsigned int count) const
{ return as_array ().sub_array (start_offset, count);}
@@ -802,6 +807,8 @@ struct SortedArrayOf : ArrayOf<Type, LenType>
{ return hb_sorted_array (this->arrayZ, this->len); }
inline hb_sorted_array_t<const Type> as_array (void) const
{ return hb_sorted_array (this->arrayZ, this->len); }
+ inline operator hb_sorted_array_t<Type> (void) { return as_array (); }
+ inline operator hb_sorted_array_t<const Type> (void) const { as_array (); }
inline hb_array_t<const Type> sub_array (unsigned int start_offset, unsigned int count) const
{ return as_array ().sub_array (start_offset, count);}
diff --git a/src/hb-vector.hh b/src/hb-vector.hh
index 953a776e..4b34a381 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -105,6 +105,8 @@ struct hb_vector_t
template <typename T> explicit_operator inline operator T * (void) { return arrayZ(); }
template <typename T> explicit_operator inline operator const T * (void) const { return arrayZ(); }
+ inline operator hb_array_t<Type> (void) { return as_array (); }
+ inline operator hb_array_t<const Type> (void) const { as_array (); }
inline Type * operator + (unsigned int i) { return arrayZ() + i; }
inline const Type * operator + (unsigned int i) const { return arrayZ() + i; }
More information about the HarfBuzz
mailing list