提交 2fe5f885 编写于 作者: B Behdad Esfahbod

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

Fixes https://github.com/harfbuzz/harfbuzz/issues/657
上级 b5bbb791
...@@ -230,7 +230,8 @@ struct hb_set_t ...@@ -230,7 +230,8 @@ struct hb_set_t
} }
inline bool add_range (hb_codepoint_t a, hb_codepoint_t b) 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 ma = get_major (a);
unsigned int mb = get_major (b); unsigned int mb = get_major (b);
if (ma == mb) if (ma == mb)
...@@ -283,7 +284,7 @@ struct hb_set_t ...@@ -283,7 +284,7 @@ struct hb_set_t
template <typename T> template <typename T>
inline bool add_sorted_array (const T *array, unsigned int count, unsigned int stride=sizeof(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; if (!count) return true;
hb_codepoint_t g = *array; hb_codepoint_t g = *array;
hb_codepoint_t last_g = g; hb_codepoint_t last_g = g;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册