jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp
changeset 7486 6a36b1ebc620
parent 5506 202f599c92aa
child 16890 36b30720a997
equal deleted inserted replaced
7485:e9e65ce0013a 7486:6a36b1ebc620
    57 }
    57 }
    58 
    58 
    59 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ArabicOpenTypeLayoutEngine)
    59 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ArabicOpenTypeLayoutEngine)
    60 
    60 
    61 ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
    61 ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
    62                         le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
    62                         le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success)
    63     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
    63     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success)
    64 {
    64 {
    65     fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
    65     fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
    66     fFeatureOrder = TRUE;
    66     fFeatureOrder = TRUE;
    67 }
    67 }
    68 
    68 
    69 ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
    69 ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
    70                                                        le_int32 typoFlags)
    70                                                        le_int32 typoFlags, LEErrorCode &success)
    71     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
    71     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
    72 {
    72 {
    73     fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
    73     fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
    74 
    74 
    75     // NOTE: We don't need to set fFeatureOrder to TRUE here
    75     // NOTE: We don't need to set fFeatureOrder to TRUE here
    76     // because this constructor is only called by the constructor
    76     // because this constructor is only called by the constructor
   149 
   149 
   150         adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
   150         adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
   151     }
   151     }
   152 }
   152 }
   153 
   153 
   154 UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
   154 UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
   155     : ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
   155     : ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success)
   156 {
   156 {
   157     fGSUBTable = (const GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
   157     fGSUBTable = (const GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
   158     fGDEFTable = (const GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
   158     fGDEFTable = (const GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
   159 
   159 
   160     fSubstitutionFilter = new CharSubstitutionFilter(fontInstance);
   160     fSubstitutionFilter = new CharSubstitutionFilter(fontInstance);