diff options
Diffstat (limited to 'Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp')
-rw-r--r-- | Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp index a1541b9fdd3..1d8f28c8c17 100644 --- a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp +++ b/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp @@ -1,6 +1,5 @@ /* - * - * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved + * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved * */ @@ -325,7 +324,11 @@ le_uint32 ChainingContextualSubstitutionSubtable::process(const LookupProcessor } } -static const LETag emptyTag = 0; +// NOTE: This could be a #define, but that seems to confuse +// the Visual Studio .NET 2003 compiler on the calls to the +// GlyphIterator constructor. It somehow can't decide if +// emptyFeatureList matches an le_uint32 or an le_uint16... +static const FeatureMask emptyFeatureList = 0x00000000UL; le_uint32 ChainingContextualSubstitutionFormat1Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const @@ -342,7 +345,7 @@ le_uint32 ChainingContextualSubstitutionFormat1Subtable::process(const LookupPro (const ChainSubRuleSetTable *) ((char *) this + chainSubRuleSetTableOffset); le_uint16 chainSubRuleCount = SWAPW(chainSubRuleSetTable->chainSubRuleCount); le_int32 position = glyphIterator->getCurrStreamPosition(); - GlyphIterator tempIterator(*glyphIterator, emptyTag); + GlyphIterator tempIterator(*glyphIterator, emptyFeatureList); for (le_uint16 subRule = 0; subRule < chainSubRuleCount; subRule += 1) { Offset chainSubRuleTableOffset = @@ -414,7 +417,7 @@ le_uint32 ChainingContextualSubstitutionFormat2Subtable::process(const LookupPro (const ChainSubClassSetTable *) ((char *) this + chainSubClassSetTableOffset); le_uint16 chainSubClassRuleCount = SWAPW(chainSubClassSetTable->chainSubClassRuleCount); le_int32 position = glyphIterator->getCurrStreamPosition(); - GlyphIterator tempIterator(*glyphIterator, emptyTag); + GlyphIterator tempIterator(*glyphIterator, emptyFeatureList); for (le_uint16 scRule = 0; scRule < chainSubClassRuleCount; scRule += 1) { Offset chainSubClassRuleTableOffset = @@ -476,7 +479,7 @@ le_uint32 ChainingContextualSubstitutionFormat3Subtable::process(const LookupPro const Offset *lookaheadCoverageTableOffsetArray = &inputCoverageTableOffsetArray[inputGlyphCount + 1]; le_uint16 substCount = (le_uint16) SWAPW(lookaheadCoverageTableOffsetArray[lookaheadGlyphCount]); le_int32 position = glyphIterator->getCurrStreamPosition(); - GlyphIterator tempIterator(*glyphIterator, emptyTag); + GlyphIterator tempIterator(*glyphIterator, emptyFeatureList); if (! tempIterator.prev(backtrkGlyphCount)) { return 0; |