X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b75a7d8f3b4adbae880cab104ce2c6a50eee4db2..ef6cf650f4a75c3f97de06b51fa104f2069b9ea2:/icuSources/layout/SubstitutionLookups.cpp diff --git a/icuSources/layout/SubstitutionLookups.cpp b/icuSources/layout/SubstitutionLookups.cpp index 318e0020..1fb28130 100644 --- a/icuSources/layout/SubstitutionLookups.cpp +++ b/icuSources/layout/SubstitutionLookups.cpp @@ -1,7 +1,6 @@ /* - * @(#)SubstitutionLookups.cpp 1.6 00/03/15 * - * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved + * (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved * */ @@ -29,18 +28,23 @@ void SubstitutionLookup::applySubstitutionLookups( le_uint16 substCount, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, - le_int32 position) + le_int32 position, + LEErrorCode& success) { + if (LE_FAILURE(success)) { + return; + } + GlyphIterator tempIterator(*glyphIterator); - for (le_uint16 subst = 0; subst < substCount; subst += 1) { + for (le_uint16 subst = 0; subst < substCount && LE_SUCCESS(success); subst += 1) { le_uint16 sequenceIndex = SWAPW(substLookupRecordArray[subst].sequenceIndex); le_uint16 lookupListIndex = SWAPW(substLookupRecordArray[subst].lookupListIndex); tempIterator.setCurrStreamPosition(position); tempIterator.next(sequenceIndex); - lookupProcessor->applySingleLookup(lookupListIndex, &tempIterator, fontInstance); + lookupProcessor->applySingleLookup(lookupListIndex, &tempIterator, fontInstance, success); } }