void MorphSubtableHeader::process(const LEReferenceTo<MorphSubtableHeader> &base, LEGlyphStorage &glyphStorage, LEErrorCode &success) const { SubtableProcessor *processor = NULL; switch (SWAPW(coverage) & scfTypeMask) { case mstIndicRearrangement: processor = new IndicRearrangementProcessor(base, success); break; case mstContextualGlyphSubstitution: processor = new ContextualGlyphSubstitutionProcessor(base, success); break; case mstLigatureSubstitution: processor = new LigatureSubstitutionProcessor(base, success); break; case mstReservedUnused: break; case mstNonContextualGlyphSubstitution: processor = NonContextualGlyphSubstitutionProcessor::createInstance(base, success); break; /* case mstContextualGlyphInsertion: processor = new ContextualGlyphInsertionProcessor(this); break; */ default: break; } if (processor != NULL) { if(LE_SUCCESS(success)) { processor->process(glyphStorage, success); } delete processor; } }
void MorphSubtableHeader::process(LEGlyphStorage &glyphStorage) const { SubtableProcessor *processor = NULL; switch (SWAPW(coverage) & scfTypeMask) { case mstIndicRearrangement: processor = new IndicRearrangementProcessor(this); break; case mstContextualGlyphSubstitution: processor = new ContextualGlyphSubstitutionProcessor(this); break; case mstLigatureSubstitution: processor = new LigatureSubstitutionProcessor(this); break; case mstReservedUnused: break; case mstNonContextualGlyphSubstitution: processor = NonContextualGlyphSubstitutionProcessor::createInstance(this); break; /* case mstContextualGlyphInsertion: processor = new ContextualGlyphInsertionProcessor(this); break; */ default: break; } if (processor != NULL) { processor->process(glyphStorage); delete processor; } }