[Indic] Adjust base after sorting
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 10 May 2012 09:31:20 +0000 (11:31 +0200)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 10 May 2012 09:31:20 +0000 (11:31 +0200)
src/hb-ot-shape-complex-indic.cc

index 174e3a9..466e924 100644 (file)
@@ -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 */