581 Offset chainSubClassRuleTableOffset = |
581 Offset chainSubClassRuleTableOffset = |
582 SWAPW(chainSubClassSetTable->chainSubClassRuleTableOffsetArray[scRule]); |
582 SWAPW(chainSubClassSetTable->chainSubClassRuleTableOffsetArray[scRule]); |
583 LEReferenceTo<ChainSubClassRuleTable> |
583 LEReferenceTo<ChainSubClassRuleTable> |
584 chainSubClassRuleTable(chainSubClassSetTable, success, chainSubClassRuleTableOffset); |
584 chainSubClassRuleTable(chainSubClassSetTable, success, chainSubClassRuleTableOffset); |
585 le_uint16 backtrackGlyphCount = SWAPW(chainSubClassRuleTable->backtrackGlyphCount); |
585 le_uint16 backtrackGlyphCount = SWAPW(chainSubClassRuleTable->backtrackGlyphCount); |
|
586 LEReferenceToArrayOf<le_uint16> backtrackClassArray(base, success, chainSubClassRuleTable->backtrackClassArray, backtrackGlyphCount); |
|
587 if( LE_FAILURE(success) ) { return 0; } |
586 le_uint16 inputGlyphCount = SWAPW(chainSubClassRuleTable->backtrackClassArray[backtrackGlyphCount]) - 1; |
588 le_uint16 inputGlyphCount = SWAPW(chainSubClassRuleTable->backtrackClassArray[backtrackGlyphCount]) - 1; |
587 LEReferenceToArrayOf<le_uint16> inputClassArray(base, success, &chainSubClassRuleTable->backtrackClassArray[backtrackGlyphCount + 1],inputGlyphCount+2); // +2 for the lookaheadGlyphCount count |
589 LEReferenceToArrayOf<le_uint16> inputClassArray(base, success, &chainSubClassRuleTable->backtrackClassArray[backtrackGlyphCount + 1],inputGlyphCount+2); // +2 for the lookaheadGlyphCount count |
588 le_uint16 lookaheadGlyphCount = SWAPW(inputClassArray.getObject(inputGlyphCount, success)); |
590 le_uint16 lookaheadGlyphCount = SWAPW(inputClassArray.getObject(inputGlyphCount, success)); |
589 LEReferenceToArrayOf<le_uint16> lookaheadClassArray(base, success, inputClassArray.getAlias(inputGlyphCount + 1,success), lookaheadGlyphCount+2); // +2 for the substCount |
591 LEReferenceToArrayOf<le_uint16> lookaheadClassArray(base, success, inputClassArray.getAlias(inputGlyphCount + 1,success), lookaheadGlyphCount+2); // +2 for the substCount |
590 |
592 |
597 if (! tempIterator.prev(backtrackGlyphCount)) { |
599 if (! tempIterator.prev(backtrackGlyphCount)) { |
598 continue; |
600 continue; |
599 } |
601 } |
600 |
602 |
601 tempIterator.prev(); |
603 tempIterator.prev(); |
602 LEReferenceToArrayOf<le_uint16> backtrackClassArray(base, success, chainSubClassRuleTable->backtrackClassArray, backtrackGlyphCount); |
|
603 if( LE_FAILURE(success) ) { return 0; } |
|
604 if (! matchGlyphClasses(backtrackClassArray, backtrackGlyphCount, |
604 if (! matchGlyphClasses(backtrackClassArray, backtrackGlyphCount, |
605 &tempIterator, backtrackClassDefinitionTable, success, TRUE)) { |
605 &tempIterator, backtrackClassDefinitionTable, success, TRUE)) { |
606 continue; |
606 continue; |
607 } |
607 } |
608 |
608 |