[unsafe-to-break] Flag during kerning

This commit is contained in:
Behdad Esfahbod 2017-08-10 20:19:15 -07:00
parent a7c4972cce
commit 2d158ca376
1 changed files with 2 additions and 0 deletions

View File

@ -643,6 +643,7 @@ struct PairSet
min = mid + 1; min = mid + 1;
else else
{ {
buffer->unsafe_to_break (buffer->idx, pos + 1);
valueFormats[0].apply_value (c, this, &record->values[0], buffer->cur_pos()); valueFormats[0].apply_value (c, this, &record->values[0], buffer->cur_pos());
valueFormats[1].apply_value (c, this, &record->values[len1], buffer->pos[pos]); valueFormats[1].apply_value (c, this, &record->values[len1], buffer->pos[pos]);
if (len2) if (len2)
@ -790,6 +791,7 @@ struct PairPosFormat2
unsigned int klass2 = (this+classDef2).get_class (buffer->info[skippy_iter.idx].codepoint); unsigned int klass2 = (this+classDef2).get_class (buffer->info[skippy_iter.idx].codepoint);
if (unlikely (klass1 >= class1Count || klass2 >= class2Count)) return_trace (false); if (unlikely (klass1 >= class1Count || klass2 >= class2Count)) return_trace (false);
buffer->unsafe_to_break (buffer->idx, skippy_iter.idx + 1);
const Value *v = &values[record_len * (klass1 * class2Count + klass2)]; const Value *v = &values[record_len * (klass1 * class2Count + klass2)];
valueFormat1.apply_value (c, this, v, buffer->cur_pos()); valueFormat1.apply_value (c, this, v, buffer->cur_pos());
valueFormat2.apply_value (c, this, v + len1, buffer->pos[skippy_iter.idx]); valueFormat2.apply_value (c, this, v + len1, buffer->pos[skippy_iter.idx]);