diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index 6d7c3182c..a067b3dc4 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -577,7 +577,7 @@ hb_buffer_t::unsafe_to_break_impl (unsigned int start, unsigned int end, hb_mask { unsigned int cluster = UINT_MAX; cluster = _infos_find_min_cluster (info, start, end, cluster); - _unsafe_to_break_set_mask (info, start, end, cluster, mask); + _infos_set_glyph_flags (info, start, end, cluster, mask); } void hb_buffer_t::unsafe_to_break_from_outbuffer (unsigned int start, unsigned int end, hb_mask_t mask) @@ -595,8 +595,8 @@ hb_buffer_t::unsafe_to_break_from_outbuffer (unsigned int start, unsigned int en cluster = _infos_find_min_cluster (out_info, start, out_len, cluster); cluster = _infos_find_min_cluster (info, idx, end, cluster); - _unsafe_to_break_set_mask (out_info, start, out_len, cluster, mask); - _unsafe_to_break_set_mask (info, idx, end, cluster, mask); + _infos_set_glyph_flags (out_info, start, out_len, cluster, mask); + _infos_set_glyph_flags (info, idx, end, cluster, mask); } void diff --git a/src/hb-buffer.hh b/src/hb-buffer.hh index 9f441305f..b7e2ce271 100644 --- a/src/hb-buffer.hh +++ b/src/hb-buffer.hh @@ -498,7 +498,19 @@ struct hb_buffer_t inf.mask = (inf.mask & ~HB_GLYPH_FLAG_DEFINED) | (mask & HB_GLYPH_FLAG_DEFINED); inf.cluster = cluster; } - + void + _infos_set_glyph_flags (hb_glyph_info_t *infos, + unsigned int start, unsigned int end, + unsigned int cluster, + hb_mask_t mask) + { + for (unsigned int i = start; i < end; i++) + if (cluster != infos[i].cluster) + { + scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_GLYPH_FLAGS; + infos[i].mask |= mask; + } + } static unsigned _infos_find_min_cluster (const hb_glyph_info_t *infos, unsigned start, unsigned end, @@ -508,19 +520,6 @@ struct hb_buffer_t cluster = hb_min (cluster, infos[i].cluster); return cluster; } - void - _unsafe_to_break_set_mask (hb_glyph_info_t *infos, - unsigned int start, unsigned int end, - unsigned int cluster, - hb_mask_t mask) - { - for (unsigned int i = start; i < end; i++) - if (cluster != infos[i].cluster) - { - scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_GLYPH_FLAGS; - infos[i].mask |= mask; - } - } void clear_glyph_flags (hb_mask_t mask = 0) {