X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/46f4442e9a5a4f3b98b7c1083586332f6a8a99a4..ef6cf650f4a75c3f97de06b51fa104f2069b9ea2:/icuSources/layout/LigatureSubstSubtables.cpp diff --git a/icuSources/layout/LigatureSubstSubtables.cpp b/icuSources/layout/LigatureSubstSubtables.cpp index 391ffe64..16d61ed1 100644 --- a/icuSources/layout/LigatureSubstSubtables.cpp +++ b/icuSources/layout/LigatureSubstSubtables.cpp @@ -1,5 +1,5 @@ /* - * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved + * (C) Copyright IBM Corp. 1998-2015 - All Rights Reserved * */ @@ -13,10 +13,10 @@ U_NAMESPACE_BEGIN -le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const +le_uint32 LigatureSubstitutionSubtable::process(const LETableReference &base, GlyphIterator *glyphIterator, LEErrorCode &success, const LEGlyphFilter *filter) const { LEGlyphID glyph = glyphIterator->getCurrGlyphID(); - le_int32 coverageIndex = getGlyphCoverage(glyph); + le_int32 coverageIndex = getGlyphCoverage(base, glyph, success); if (coverageIndex >= 0) { Offset ligSetTableOffset = SWAPW(ligSetTableOffsetArray[coverageIndex]); @@ -27,6 +27,9 @@ le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, co Offset ligTableOffset = SWAPW(ligSetTable->ligatureTableOffsetArray[lig]); const LigatureTable *ligTable = (const LigatureTable *) ((char *)ligSetTable + ligTableOffset); le_uint16 compCount = SWAPW(ligTable->compCount) - 1; + LEReferenceToArrayOf + componentArrayRef(base, success, ligTable->componentArray, compCount); + if (LE_FAILURE(success)) { return 0; } le_int32 startPosition = glyphIterator->getCurrStreamPosition(); TTGlyphID ligGlyph = SWAPW(ligTable->ligGlyph); le_uint16 comp;