[GSUB] Minor
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 1 Aug 2012 02:43:58 +0000 (22:43 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 1 Aug 2012 02:43:58 +0000 (22:43 -0400)
src/hb-ot-layout-gsub-table.hh

index 05caee9..605ddb5 100644 (file)
@@ -1315,7 +1315,10 @@ GSUB::substitute_start (hb_face_t *face, hb_buffer_t *buffer)
   HB_BUFFER_ALLOCATE_VAR (buffer, lig_props);
   HB_BUFFER_ALLOCATE_VAR (buffer, syllable);
 
-  const GDEF &gdef = *hb_ot_layout_from_face (face)->gdef;
+  /* TODO This pattern is duplicated from gsubgpos-private.h.  Do something about it. */
+  const GDEF &gdef = hb_ot_layout_from_face (face) &&
+                    !HB_SHAPER_DATA_IS_INVALID (hb_ot_layout_from_face (face)) ?
+                    *hb_ot_layout_from_face (face)->gdef : Null(GDEF);
   unsigned int count = buffer->len;
   for (unsigned int i = 0; i < count; i++) {
     buffer->info[i].lig_props() = buffer->info[i].syllable() = 0;