From 555d11273ee4c30e84eda3a78ffadb3ee7da65d0 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 26 Jan 2010 12:58:59 -0500 Subject: [PATCH] [GDEF] Fix bug in building synthetic GDEF --- src/hb-ot-layout.cc | 5 +++-- src/hb-ot-layout.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc index cf4fc9dbb..4a17af267 100644 --- a/src/hb-ot-layout.cc +++ b/src/hb-ot-layout.cc @@ -44,6 +44,8 @@ _hb_ot_layout_init (hb_face_t *face) { hb_ot_layout_t *layout = &face->ot_layout; + memset (layout, 0, sizeof (*layout)); + layout->gdef_blob = Sanitizer::sanitize (hb_face_get_table (face, HB_OT_TAG_GDEF)); layout->gdef = &Sanitizer::lock_instance (layout->gdef_blob); @@ -279,7 +281,6 @@ hb_ot_layout_set_glyph_class (hb_face_t *face, void hb_ot_layout_build_glyph_classes (hb_face_t *face, - uint16_t num_total_glyphs, hb_codepoint_t *glyphs, unsigned char *klasses, uint16_t count) @@ -293,7 +294,7 @@ hb_ot_layout_build_glyph_classes (hb_face_t *face, return; if (layout->new_gdef.len == 0) { - layout->new_gdef.klasses = (unsigned char *) calloc (num_total_glyphs, sizeof (unsigned char)); + layout->new_gdef.klasses = (unsigned char *) calloc (count, sizeof (unsigned char)); layout->new_gdef.len = count; } diff --git a/src/hb-ot-layout.h b/src/hb-ot-layout.h index 8edca8ea0..c65b0593e 100644 --- a/src/hb-ot-layout.h +++ b/src/hb-ot-layout.h @@ -68,7 +68,6 @@ hb_ot_layout_set_glyph_class (hb_face_t *face, void hb_ot_layout_build_glyph_classes (hb_face_t *face, - uint16_t num_total_glyphs, hb_codepoint_t *glyphs, unsigned char *klasses, uint16_t count);