[GX] Handle setting var coords to NULL
authorBehdad Esfahbod <behdad@behdad.org>
Sat, 10 Sep 2016 08:58:27 +0000 (01:58 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 17 Dec 2016 01:06:26 +0000 (19:06 -0600)
src/hb-font.cc

index cce4359ce2bae22779b84f6f88575c6ac6b6abbe..24ecb45023e004d73bca11ac73d3b0b7ff6d9b60 100644 (file)
@@ -1560,8 +1560,8 @@ hb_font_set_var_coords_normalized (hb_font_t *font,
   while (coords_length && !coords[coords_length - 1])
     coords_length--;
 
-  int *copy = (int *) calloc (coords_length, sizeof (coords[0]));
-  if (unlikely (!copy))
+  int *copy = coords_length ? (int *) calloc (coords_length, sizeof (coords[0])) : NULL;
+  if (unlikely (coords_length && !copy))
     return;
 
   if (font->x_coords)
@@ -1569,7 +1569,9 @@ hb_font_set_var_coords_normalized (hb_font_t *font,
   if (font->y_coords && font->y_coords != font->x_coords)
     free (font->y_coords);
 
-  memcpy (copy, coords, coords_length * sizeof (coords[0]));
+  if (coords_length)
+    memcpy (copy, coords, coords_length * sizeof (coords[0]));
+
   font->x_coords = font->y_coords = copy;
   font->num_coords = coords_length;
 }