| Index: Source/platform/fonts/UTF16TextIterator.cpp
|
| diff --git a/Source/platform/fonts/UTF16TextIterator.cpp b/Source/platform/fonts/UTF16TextIterator.cpp
|
| index c86c3cf5e4a5df2e193bd83eb68d13d9303b5fcf..1448a49fac8c9a5a78c1729c04814aec5563583c 100644
|
| --- a/Source/platform/fonts/UTF16TextIterator.cpp
|
| +++ b/Source/platform/fonts/UTF16TextIterator.cpp
|
| @@ -48,19 +48,8 @@ UTF16TextIterator::UTF16TextIterator(const UChar* characters, int currentCharact
|
| {
|
| }
|
|
|
| -bool UTF16TextIterator::consumeSlowCase(UChar32& character)
|
| +bool UTF16TextIterator::consumeSurrogatePair(UChar32& character)
|
| {
|
| - if (character <= 0x30FE) {
|
| - // Deal with Hiragana and Katakana voiced and semi-voiced syllables.
|
| - // Normalize into composed form, and then look for glyph with base +
|
| - // combined mark.
|
| - if (UChar32 normalized = normalizeVoicingMarks()) {
|
| - character = normalized;
|
| - m_currentGlyphLength = 2;
|
| - }
|
| - return true;
|
| - }
|
| -
|
| if (!U16_IS_SURROGATE(character))
|
| return true;
|
|
|
| @@ -100,25 +89,4 @@ void UTF16TextIterator::consumeMultipleUChar()
|
| m_currentGlyphLength = markLength;
|
| }
|
|
|
| -UChar32 UTF16TextIterator::normalizeVoicingMarks()
|
| -{
|
| - // According to http://www.unicode.org/Public/UNIDATA/UCD.html#Canonical_Combining_Class_Values
|
| - static const uint8_t hiraganaKatakanaVoicingMarksCombiningClass = 8;
|
| -
|
| - if (m_offset + 1 >= m_endOffset)
|
| - return 0;
|
| -
|
| - if (combiningClass(m_characters[1]) == hiraganaKatakanaVoicingMarksCombiningClass) {
|
| - // Normalize into composed form using 3.2 rules.
|
| - UChar normalizedCharacters[2] = { 0, 0 };
|
| - UErrorCode uStatus = U_ZERO_ERROR;
|
| - int32_t resultLength = unorm_normalize(m_characters, 2, UNORM_NFC,
|
| - UNORM_UNICODE_3_2, &normalizedCharacters[0], 2, &uStatus);
|
| - if (resultLength == 1 && !uStatus)
|
| - return normalizedCharacters[0];
|
| - }
|
| -
|
| - return 0;
|
| -}
|
| -
|
| }
|
|
|