while (baseg >= gstring->glyphs
&& (! baseg->glyph_id
- || ! (flag & (1 << baseg->GlyphClass))))
+ || (baseg->GlyphClass
+ && (flag & (1 << baseg->GlyphClass)))))
baseg--;
coverage_idx_base
= get_coverage_index (&mark_base1->BaseCoverage,
while (ligg >= gstring->glyphs
&& (! ligg->glyph_id
- || ! (flag & (1 << ligg->GlyphClass))))
+ || (ligg->GlyphClass
+ && (flag & (1 << ligg->GlyphClass)))))
{
if (ligg->positioning_type == 5
&& ligg->MarkAttachClass < mark_lig1->ClassCount)
+ coverage_idx_lig);
for (j = 0; j < attach->ComponentCount; j++)
{
- OTF_Anchor *lig_anchor = attach->ComponentRecord + j;
+ OTF_Anchor *lig_anchor
+ = attach->ComponentRecord[j].LigatureAnchor;
if (lig_anchor[mark_record->Class].AnchorFormat
&& num_class[mark_record->Class]-- < 0)
while (prevg >= gstring->glyphs
&& (! prevg->glyph_id
- || ! (flag & (1 << prevg->GlyphClass))))
+ || (prevg->GlyphClass
+ && (flag & (1 << prevg->GlyphClass)))))
prevg--;
if (prevg < gstring->glyphs)
continue;