[unsafe-to-concat] More annotations for MarkMarkPos

Failures down to one:

265/401 harfbuzz:shaping+aots / lookupflag_ignore_attach         FAIL
This commit is contained in:
Behdad Esfahbod 2022-01-22 10:35:05 -07:00
parent 6a7d6d4b64
commit 8663eda4fd
1 changed files with 11 additions and 2 deletions

View File

@ -2635,7 +2635,11 @@ struct MarkMarkPosFormat1
return_trace (false); return_trace (false);
} }
if (!_hb_glyph_info_is_mark (&buffer->info[skippy_iter.idx])) { return_trace (false); } if (!_hb_glyph_info_is_mark (&buffer->info[skippy_iter.idx]))
{
buffer->unsafe_to_concat_from_outbuffer (skippy_iter.idx, buffer->idx + 1);
return_trace (false);
}
unsigned int j = skippy_iter.idx; unsigned int j = skippy_iter.idx;
@ -2660,11 +2664,16 @@ struct MarkMarkPosFormat1
} }
/* Didn't match. */ /* Didn't match. */
buffer->unsafe_to_concat_from_outbuffer (skippy_iter.idx, buffer->idx + 1);
return_trace (false); return_trace (false);
good: good:
unsigned int mark2_index = (this+mark2Coverage).get_coverage (buffer->info[j].codepoint); unsigned int mark2_index = (this+mark2Coverage).get_coverage (buffer->info[j].codepoint);
if (mark2_index == NOT_COVERED) return_trace (false); if (mark2_index == NOT_COVERED)
{
buffer->unsafe_to_concat_from_outbuffer (skippy_iter.idx, buffer->idx + 1);
return_trace (false);
}
return_trace ((this+mark1Array).apply (c, mark1_index, mark2_index, this+mark2Array, classCount, j)); return_trace ((this+mark1Array).apply (c, mark1_index, mark2_index, this+mark2Array, classCount, j));
} }