Loading core/jni/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,7 @@ LOCAL_C_INCLUDES += \ external/icu4c/i18n \ external/icu4c/common \ external/jpeg \ external/harfbuzz/contrib \ external/harfbuzz/src \ external/zlib \ frameworks/opt/emoji \ Loading core/jni/android/graphics/TextLayoutCache.cpp +30 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,10 @@ #include "TextLayoutCache.h" #include "TextLayout.h" extern "C" { #include "harfbuzz-unicode.h" } namespace android { TextLayoutCache::TextLayoutCache() : Loading Loading @@ -355,7 +359,32 @@ void TextLayoutCacheValue::setupShaperItem(HB_ShaperItem* shaperItem, HB_FontRec shaperItem->item.pos = start; shaperItem->item.length = count; shaperItem->item.bidiLevel = isRTL; shaperItem->item.script = isRTL ? HB_Script_Arabic : HB_Script_Common; ssize_t nextCodePoint = 0; uint32_t codePoint = utf16_to_code_point(chars, count, &nextCodePoint); HB_Script script = code_point_to_script(codePoint); if (script == HB_Script_Inherited) { #if DEBUG_GLYPHS LOGD("Cannot find a correct script for code point=%d " " Need to look at the next code points.", codePoint); #endif while (script == HB_Script_Inherited && nextCodePoint < count) { codePoint = utf16_to_code_point(chars, count, &nextCodePoint); script = code_point_to_script(codePoint); } } if (script == HB_Script_Inherited) { #if DEBUG_GLYPHS LOGD("Cannot find a correct script from the text." " Need to select a default script depending on the passed text direction."); #endif script = isRTL ? HB_Script_Arabic : HB_Script_Common; } shaperItem->item.script = script; shaperItem->string = chars; shaperItem->stringLength = contextCount; Loading Loading
core/jni/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,7 @@ LOCAL_C_INCLUDES += \ external/icu4c/i18n \ external/icu4c/common \ external/jpeg \ external/harfbuzz/contrib \ external/harfbuzz/src \ external/zlib \ frameworks/opt/emoji \ Loading
core/jni/android/graphics/TextLayoutCache.cpp +30 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,10 @@ #include "TextLayoutCache.h" #include "TextLayout.h" extern "C" { #include "harfbuzz-unicode.h" } namespace android { TextLayoutCache::TextLayoutCache() : Loading Loading @@ -355,7 +359,32 @@ void TextLayoutCacheValue::setupShaperItem(HB_ShaperItem* shaperItem, HB_FontRec shaperItem->item.pos = start; shaperItem->item.length = count; shaperItem->item.bidiLevel = isRTL; shaperItem->item.script = isRTL ? HB_Script_Arabic : HB_Script_Common; ssize_t nextCodePoint = 0; uint32_t codePoint = utf16_to_code_point(chars, count, &nextCodePoint); HB_Script script = code_point_to_script(codePoint); if (script == HB_Script_Inherited) { #if DEBUG_GLYPHS LOGD("Cannot find a correct script for code point=%d " " Need to look at the next code points.", codePoint); #endif while (script == HB_Script_Inherited && nextCodePoint < count) { codePoint = utf16_to_code_point(chars, count, &nextCodePoint); script = code_point_to_script(codePoint); } } if (script == HB_Script_Inherited) { #if DEBUG_GLYPHS LOGD("Cannot find a correct script from the text." " Need to select a default script depending on the passed text direction."); #endif script = isRTL ? HB_Script_Arabic : HB_Script_Common; } shaperItem->item.script = script; shaperItem->string = chars; shaperItem->stringLength = contextCount; Loading