[unsafe-to-break] Flag during kerning
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 11 Aug 2017 03:19:15 +0000 (20:19 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Fri, 11 Aug 2017 03:20:30 +0000 (20:20 -0700)
src/hb-ot-layout-gpos-table.hh

index 952fd60..37343d6 100644 (file)
@@ -643,6 +643,7 @@ struct PairSet
         min = mid + 1;
       else
       {
+        buffer->unsafe_to_break (buffer->idx, pos + 1);
        valueFormats[0].apply_value (c, this, &record->values[0], buffer->cur_pos());
        valueFormats[1].apply_value (c, this, &record->values[len1], buffer->pos[pos]);
        if (len2)
@@ -790,6 +791,7 @@ struct PairPosFormat2
     unsigned int klass2 = (this+classDef2).get_class (buffer->info[skippy_iter.idx].codepoint);
     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)];
     valueFormat1.apply_value (c, this, v, buffer->cur_pos());
     valueFormat2.apply_value (c, this, v + len1, buffer->pos[skippy_iter.idx]);