Simplify mark skipping logic
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 28 Oct 2010 02:11:32 +0000 (22:11 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Tue, 2 Nov 2010 23:12:59 +0000 (19:12 -0400)
src/hb-ot-layout.cc

index e4f5e2d..ca13a4d 100644 (file)
@@ -184,22 +184,11 @@ _hb_ot_layout_skip_mark (hb_face_t    *face,
   if (property_out)
     *property_out = property;
 
+  /* If it's a mark, skip it we don't accept it. */
   if (property & HB_OT_LAYOUT_GLYPH_CLASS_MARK)
-  {
-    /* Skip mark if lookup_props includes LookupFlags::IgnoreMarks */
-    if (lookup_props & LookupFlag::IgnoreMarks)
-      return true;
-
-    /* If using mark filtering sets, the high short of lookup_props has the set index. */
-    if (lookup_props & LookupFlag::UseMarkFilteringSet)
-      return !_get_gdef (face).mark_set_covers (lookup_props >> 16, ginfo->codepoint);
-
-    /* The second byte of lookup_props has the meaning "ignore marks of attachment type
-     * different than the attachment type specified." */
-    if (lookup_props & LookupFlag::MarkAttachmentType && property & LookupFlag::MarkAttachmentType)
-      return (lookup_props & LookupFlag::MarkAttachmentType) != (property & LookupFlag::MarkAttachmentType);
-  }
+    return !_hb_ot_layout_check_glyph_property (face, ginfo, lookup_props, NULL);
 
+  /* If not a mark, don't skip. */
   return false;
 }