You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-09 12:50:35 +00:00
HarfBuzz: Update to version 4.3.0
This commit is contained in:
26
thirdparty/harfbuzz/src/hb-array.hh
vendored
26
thirdparty/harfbuzz/src/hb-array.hh
vendored
@@ -346,7 +346,7 @@ struct hb_sorted_array_t :
|
||||
unsigned int i;
|
||||
return bfind (x, &i) ? &this->arrayZ[i] : not_found;
|
||||
}
|
||||
template <typename T>
|
||||
template <typename T, typename ...Ts>
|
||||
const Type *bsearch (const T &x, const Type *not_found = nullptr) const
|
||||
{
|
||||
unsigned int i;
|
||||
@@ -384,15 +384,16 @@ struct hb_sorted_array_t :
|
||||
}
|
||||
return false;
|
||||
}
|
||||
template <typename T>
|
||||
bool bsearch_impl (const T &x, unsigned *pos) const
|
||||
template <typename T, typename ...Ts>
|
||||
bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const
|
||||
{
|
||||
return hb_bsearch_impl (pos,
|
||||
x,
|
||||
this->arrayZ,
|
||||
this->length,
|
||||
sizeof (Type),
|
||||
_hb_cmp_method<T, Type>);
|
||||
_hb_cmp_method<T, Type, Ts...>,
|
||||
ds...);
|
||||
}
|
||||
};
|
||||
template <typename T> inline hb_sorted_array_t<T>
|
||||
@@ -403,7 +404,7 @@ hb_sorted_array (T (&array_)[length_])
|
||||
{ return hb_sorted_array_t<T> (array_); }
|
||||
|
||||
template <typename T>
|
||||
bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const
|
||||
inline bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const
|
||||
{
|
||||
if (o.length != this->length) return false;
|
||||
for (unsigned int i = 0; i < this->length; i++) {
|
||||
@@ -411,8 +412,18 @@ bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* TODO Specialize operator== for hb_bytes_t and hb_ubytes_t. */
|
||||
template <>
|
||||
inline bool hb_array_t<const char>::operator == (const hb_array_t<const char> &o) const
|
||||
{
|
||||
if (o.length != this->length) return false;
|
||||
return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
|
||||
}
|
||||
template <>
|
||||
inline bool hb_array_t<const unsigned char>::operator == (const hb_array_t<const unsigned char> &o) const
|
||||
{
|
||||
if (o.length != this->length) return false;
|
||||
return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline uint32_t hb_array_t<const char>::hash () const {
|
||||
@@ -421,7 +432,6 @@ inline uint32_t hb_array_t<const char>::hash () const {
|
||||
current = current * 31 + (uint32_t) (this->arrayZ[i] * 2654435761u);
|
||||
return current;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline uint32_t hb_array_t<const unsigned char>::hash () const {
|
||||
uint32_t current = 0;
|
||||
|
||||
Reference in New Issue
Block a user