5891N/A * or visit www.oracle.com if you need additional information or have any
5891N/A#include "MorphTables.h"
5891N/A#include "StateTables.h"
5891N/A#include "MorphStateTables.h"
5891N/A#include "SubtableProcessor2.h"
5891N/A#include "StateTableProcessor2.h"
5891N/A#include "LEGlyphStorage.h"
5891N/A#include "LookupTables.h"
5980N/AStateTableProcessor2::StateTableProcessor2(const LEReferenceTo<MorphSubtableHeader2> &morphSubtableHeader, LEErrorCode &success)
5980N/A : SubtableProcessor2(morphSubtableHeader, success), stateTableHeader(morphSubtableHeader, success),
5980N/A nClasses(0), classTableOffset(0), stateArrayOffset(0), entryTableOffset(0), classTable(), format(0),
5980N/A stateArray = LEReferenceToArrayOf<EntryTableIndex2>(stHeader, success, stateArrayOffset, LE_UNBOUNDED_ARRAY);
5891N/A case ltfSimpleArray: {
5891N/A#ifdef TEST_FORMAT
5980N/A if (LE_STATE_PATIENCE_DECR()) {
5980N/A EntryTableIndex2 entryTableIndex = SWAPW(stateArray(classCode + currentState * nClasses, success));
5891N/A currentState = processStateEntry(glyphStorage, currGlyph, entryTableIndex); // return a zero-based index instead of a byte offset
5891N/A case ltfSegmentSingle: {
5980N/A if (LE_STATE_PATIENCE_DECR()) {
5980N/A EntryTableIndex2 entryTableIndex = SWAPW(stateArray(classCode + currentState * nClasses,success));
5891N/A case ltfSegmentArray: {
5891N/A case ltfSingleTable: {
5980N/A if (LE_STATE_PATIENCE_DECR()) {
5980N/A const LookupSingle *segment = lookupTable6->lookupSingle(lookupTable6, lookupTable6->entries, gid, success);
5980N/A EntryTableIndex2 entryTableIndex = SWAPW(stateArray(classCode + currentState * nClasses, success));
5891N/A case ltfTrimmedArray: {
5971N/A if(LE_STATE_PATIENCE_DECR()) {