diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 174e3a9d8..466e924af 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -363,9 +363,18 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff info[i].indic_position() = info[i - 1].indic_position(); /* We do bubble-sort, skip malicious clusters attempts */ - /* Sit tight, rock 'n roll! */ if (end - start < 20) + { + /* Sit tight, rock 'n roll! */ hb_bubble_sort (info + start, end - start, compare_indic_order); + /* Find base again */ + base = end; + for (i = start; i < end; i++) + if (info[i].indic_position() == POS_BASE_C) { + base = i; + break; + } + } /* Setup masks now */