[set] Handle nil set in add_range() / add_sorted_array()

Fixes https://github.com/harfbuzz/harfbuzz/issues/657
This commit is contained in:
Behdad Esfahbod 2017-12-19 14:48:26 -05:00
parent b5bbb791d3
commit 2fe5f885b6
1 changed files with 3 additions and 2 deletions

View File

@ -230,7 +230,8 @@ struct hb_set_t
}
inline bool add_range (hb_codepoint_t a, hb_codepoint_t b)
{
if (unlikely (in_error || a > b || a == INVALID || b == INVALID)) return false;
if (unlikely (in_error)) return true; /* https://github.com/harfbuzz/harfbuzz/issues/657 */
if (unlikely (a > b || a == INVALID || b == INVALID)) return false;
unsigned int ma = get_major (a);
unsigned int mb = get_major (b);
if (ma == mb)
@ -283,7 +284,7 @@ struct hb_set_t
template <typename T>
inline bool add_sorted_array (const T *array, unsigned int count, unsigned int stride=sizeof(T))
{
if (unlikely (in_error)) return false;
if (unlikely (in_error)) return true; /* https://github.com/harfbuzz/harfbuzz/issues/657 */
if (!count) return true;
hb_codepoint_t g = *array;
hb_codepoint_t last_g = g;