[skippy-iter] Fix two logic errors

First, a signed underflow.

Second, a wrong condition.

Both were introduced in 42681bdb55
This commit is contained in:
Behdad Esfahbod 2022-11-24 11:48:48 -07:00
parent 3b43096ef3
commit 0c70bc7f32
1 changed files with 4 additions and 4 deletions

View File

@ -537,10 +537,10 @@ struct hb_ot_apply_context_t :
assert (num_items > 0);
/* The alternate condition below is faster at string boundaries,
* but produces subpar "unsafe-to-concat" values. */
unsigned stop = end - num_items;
signed stop = (signed) end - (signed) num_items;
if (c->buffer->flags & HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT)
stop = end - 1;
while (idx < stop)
stop = (signed) end - 1;
while ((signed) idx < stop)
{
idx++;
hb_glyph_info_t &info = c->buffer->info[idx];
@ -575,7 +575,7 @@ struct hb_ot_apply_context_t :
assert (num_items > 0);
/* The alternate condition below is faster at string boundaries,
* but produces subpar "unsafe-to-concat" values. */
unsigned stop = 1 - num_items;
unsigned stop = num_items - 1;
if (c->buffer->flags & HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT)
stop = 1 - 1;
while (idx > stop)