Fix stupid array growing bug
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 28 Aug 2009 13:46:14 +0000 (09:46 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 2 Nov 2009 19:40:47 +0000 (14:40 -0500)
src/hb-ot-layout.cc

index c8d2d2c..3b6b8da 100644 (file)
@@ -222,10 +222,13 @@ _hb_ot_layout_set_glyph_class (hb_face_t                  *face,
 
   /* XXX this is not threadsafe */
   if (glyph >= len) {
-    int new_len;
+    unsigned int new_len;
     unsigned char *new_klasses;
 
     new_len = len == 0 ? 120 : 2 * len;
+    while (new_len <= glyph)
+      new_len *= 2;
+
     if (new_len > 65536)
       new_len = 65536;
     new_klasses = (unsigned char *) realloc (layout->new_gdef.klasses, new_len * sizeof (unsigned char));