jdk/src/java.desktop/share/native/libfontmanager/layout/ContextualGlyphSubstProc.cpp
changeset 41564 c0b5de99deef
parent 31692 6f9d9bd603ce
equal deleted inserted replaced
41563:af8478174e7b 41564:c0b5de99deef
    44 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ContextualGlyphSubstitutionProcessor)
    44 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ContextualGlyphSubstitutionProcessor)
    45 
    45 
    46 ContextualGlyphSubstitutionProcessor::ContextualGlyphSubstitutionProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success)
    46 ContextualGlyphSubstitutionProcessor::ContextualGlyphSubstitutionProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success)
    47   : StateTableProcessor(morphSubtableHeader, success), entryTable(), contextualGlyphSubstitutionHeader(morphSubtableHeader, success)
    47   : StateTableProcessor(morphSubtableHeader, success), entryTable(), contextualGlyphSubstitutionHeader(morphSubtableHeader, success)
    48 {
    48 {
       
    49   if (LE_FAILURE(success)) return;
    49   contextualGlyphSubstitutionHeader.orphan();
    50   contextualGlyphSubstitutionHeader.orphan();
    50   substitutionTableOffset = SWAPW(contextualGlyphSubstitutionHeader->substitutionTableOffset);
    51   substitutionTableOffset = SWAPW(contextualGlyphSubstitutionHeader->substitutionTableOffset);
    51 
    52 
    52 
    53 
    53   entryTable = LEReferenceToArrayOf<ContextualGlyphSubstitutionStateEntry>(stateTableHeader, success,
    54   entryTable = LEReferenceToArrayOf<ContextualGlyphSubstitutionStateEntry>(stateTableHeader, success,
    64 void ContextualGlyphSubstitutionProcessor::beginStateTable()
    65 void ContextualGlyphSubstitutionProcessor::beginStateTable()
    65 {
    66 {
    66     markGlyph = 0;
    67     markGlyph = 0;
    67 }
    68 }
    68 
    69 
    69 ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
    70 ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index, LEErrorCode &success)
    70 {
    71 {
    71   LEErrorCode success = LE_NO_ERROR;
       
    72   const ContextualGlyphSubstitutionStateEntry *entry = entryTable.getAlias(index, success);
    72   const ContextualGlyphSubstitutionStateEntry *entry = entryTable.getAlias(index, success);
       
    73   if (LE_FAILURE(success)) return 0;
    73   ByteOffset newState = SWAPW(entry->newStateOffset);
    74   ByteOffset newState = SWAPW(entry->newStateOffset);
    74   le_int16 flags = SWAPW(entry->flags);
    75   le_int16 flags = SWAPW(entry->flags);
    75   WordOffset markOffset = SWAPW(entry->markOffset);
    76   WordOffset markOffset = SWAPW(entry->markOffset);
    76   WordOffset currOffset = SWAPW(entry->currOffset);
    77   WordOffset currOffset = SWAPW(entry->currOffset);
    77 
    78