Underflow protection in hb_vector_t

This commit is contained in:
Behdad Esfahbod 2018-05-24 13:38:46 -07:00
parent f83e992c8b
commit 31c4236d96
1 changed files with 7 additions and 4 deletions

View File

@ -685,8 +685,9 @@ struct hb_vector_t
return true;
}
inline bool resize (unsigned int size)
inline bool resize (int size_)
{
unsigned int size = size_ < 0 ? 0u : (unsigned int) size_;
if (!alloc (size))
return false;
@ -696,6 +697,7 @@ struct hb_vector_t
inline void pop (void)
{
if (!len) return;
len--;
}
@ -709,10 +711,11 @@ struct hb_vector_t
len--;
}
inline void shrink (unsigned int l)
inline void shrink (int size_)
{
if (l < len)
len = l;
unsigned int size = size_ < 0 ? 0u : (unsigned int) size_;
if (size < len)
len = size;
}
template <typename T>