jdk/src/java.desktop/share/native/libfontmanager/layout/ContextualGlyphSubstProc.cpp
equal
deleted
inserted
replaced
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 |