[webkit-changes] [WebKit/WebKit] c3f904: Adopt char32_t instead of UChar32 to sidestep ambi...

Darin Adler noreply at github.com
Fri Dec 1 02:10:41 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c3f90442cf07394271cef85c2e1d18dab8f2f800
      https://github.com/WebKit/WebKit/commit/c3f90442cf07394271cef85c2e1d18dab8f2f800
  Author: Darin Adler <darin at apple.com>
  Date:   2023-12-01 (Fri, 01 Dec 2023)

  Changed paths:
    M Source/JavaScriptCore/parser/Lexer.cpp
    M Source/JavaScriptCore/parser/Lexer.h
    M Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
    M Source/JavaScriptCore/runtime/StringPrototype.cpp
    M Source/JavaScriptCore/yarr/YarrCanonicalize.h
    M Source/JavaScriptCore/yarr/YarrCanonicalizeUCS2.cpp
    M Source/JavaScriptCore/yarr/YarrCanonicalizeUCS2.js
    M Source/JavaScriptCore/yarr/YarrInterpreter.cpp
    M Source/JavaScriptCore/yarr/YarrInterpreter.h
    M Source/JavaScriptCore/yarr/YarrJIT.cpp
    M Source/JavaScriptCore/yarr/YarrJIT.h
    M Source/JavaScriptCore/yarr/YarrParser.h
    M Source/JavaScriptCore/yarr/YarrPattern.cpp
    M Source/JavaScriptCore/yarr/YarrPattern.h
    M Source/JavaScriptCore/yarr/YarrSyntaxChecker.cpp
    M Source/JavaScriptCore/yarr/generateYarrCanonicalizeUnicode
    M Source/JavaScriptCore/yarr/generateYarrUnicodePropertyTables.py
    M Source/WTF/wtf/ASCIICType.h
    M Source/WTF/wtf/PrintStream.cpp
    M Source/WTF/wtf/PrintStream.h
    M Source/WTF/wtf/URLHelpers.cpp
    M Source/WTF/wtf/URLParser.cpp
    M Source/WTF/wtf/URLParser.h
    M Source/WTF/wtf/text/AtomString.cpp
    M Source/WTF/wtf/text/CodePointIterator.h
    M Source/WTF/wtf/text/StringBuilder.h
    M Source/WTF/wtf/text/StringConcatenate.h
    M Source/WTF/wtf/text/StringImpl.cpp
    M Source/WTF/wtf/text/StringImpl.h
    M Source/WTF/wtf/text/StringView.h
    M Source/WTF/wtf/text/WTFString.cpp
    M Source/WTF/wtf/text/WTFString.h
    M Source/WTF/wtf/unicode/CharacterNames.h
    M Source/WTF/wtf/unicode/UTF8Conversion.cpp
    M Source/WTF/wtf/unicode/UTF8Conversion.h
    M Source/WebCore/PAL/pal/text/EncodingTables.cpp
    M Source/WebCore/PAL/pal/text/EncodingTables.h
    M Source/WebCore/PAL/pal/text/TextCodec.cpp
    M Source/WebCore/PAL/pal/text/TextCodec.h
    M Source/WebCore/PAL/pal/text/TextCodecCJK.cpp
    M Source/WebCore/PAL/pal/text/TextCodecSingleByte.cpp
    M Source/WebCore/PAL/pal/text/TextCodecUTF16.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
    M Source/WebCore/contentextensions/URLFilterParser.cpp
    M Source/WebCore/css/CSSFontFace.cpp
    M Source/WebCore/css/CSSFontFace.h
    M Source/WebCore/css/CSSFontFaceSet.cpp
    M Source/WebCore/css/CSSMarkup.cpp
    M Source/WebCore/css/CSSUnicodeRangeValue.h
    M Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp
    M Source/WebCore/css/parser/CSSTokenizer.cpp
    M Source/WebCore/css/parser/CSSTokenizer.h
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/editing/Editor.cpp
    M Source/WebCore/editing/ReplaceSelectionCommand.cpp
    M Source/WebCore/editing/SmartReplace.cpp
    M Source/WebCore/editing/SmartReplace.h
    M Source/WebCore/editing/SmartReplaceCF.cpp
    M Source/WebCore/editing/TextIterator.cpp
    M Source/WebCore/editing/TypingCommand.cpp
    M Source/WebCore/editing/VisiblePosition.cpp
    M Source/WebCore/editing/VisiblePosition.h
    M Source/WebCore/editing/VisibleUnits.cpp
    M Source/WebCore/editing/VisibleUnits.h
    M Source/WebCore/html/parser/HTMLEntityParser.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
    M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
    M Source/WebCore/mathml/MathMLOperatorDictionary.cpp
    M Source/WebCore/mathml/MathMLOperatorDictionary.h
    M Source/WebCore/mathml/MathMLOperatorElement.h
    M Source/WebCore/mathml/MathMLTokenElement.cpp
    M Source/WebCore/mathml/MathMLTokenElement.h
    M Source/WebCore/platform/graphics/ComplexTextController.cpp
    M Source/WebCore/platform/graphics/ComplexTextController.h
    M Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h
    M Source/WebCore/platform/graphics/Font.cpp
    M Source/WebCore/platform/graphics/Font.h
    M Source/WebCore/platform/graphics/FontCascade.cpp
    M Source/WebCore/platform/graphics/FontCascade.h
    M Source/WebCore/platform/graphics/FontCascadeFonts.cpp
    M Source/WebCore/platform/graphics/FontCascadeFonts.h
    M Source/WebCore/platform/graphics/FontRanges.cpp
    M Source/WebCore/platform/graphics/FontRanges.h
    M Source/WebCore/platform/graphics/GlyphPage.h
    M Source/WebCore/platform/graphics/Latin1TextIterator.h
    M Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.h
    M Source/WebCore/platform/graphics/WidthIterator.cpp
    M Source/WebCore/platform/graphics/WidthIterator.h
    M Source/WebCore/platform/graphics/cairo/FontCairo.cpp
    M Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp
    M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp
    M Source/WebCore/platform/graphics/coretext/FontCoreText.cpp
    M Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp
    M Source/WebCore/platform/graphics/freetype/FontSetCache.cpp
    M Source/WebCore/platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp
    M Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp
    R Source/WebCore/platform/graphics/freetype/UTF16UChar32Iterator.h
    M Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
    M Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm
    M Source/WebCore/platform/graphics/win/FontCacheWin.cpp
    M Source/WebCore/platform/graphics/win/SimpleFontDataCairoWin.cpp
    M Source/WebCore/platform/libwpe/PlatformKeyboardEventLibWPE.cpp
    M Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
    M Source/WebCore/platform/text/CharacterProperties.h
    M Source/WebCore/platform/text/TextBoundaries.cpp
    M Source/WebCore/platform/text/TextBoundaries.h
    M Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp
    M Source/WebCore/platform/text/mac/TextBoundaries.mm
    M Source/WebCore/rendering/LegacyInlineIterator.h
    M Source/WebCore/rendering/RenderText.cpp
    M Source/WebCore/rendering/mathml/MathOperator.cpp
    M Source/WebCore/rendering/mathml/MathOperator.h
    M Source/WebCore/rendering/mathml/RenderMathMLFencedOperator.h
    M Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLOperator.h
    M Source/WebCore/rendering/mathml/RenderMathMLToken.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLToken.h
    M Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp
    M Source/WebCore/svg/SVGParserUtilities.h
    M Source/WebCore/svg/SVGToOTFFontConversion.cpp
    M Source/WebCore/xml/XSLTProcessorLibxslt.cpp
    M Source/WebKit/Shared/EditorState.h
    M Source/WebKit/Shared/EditorState.serialization.in
    M Source/WebKit/Shared/wpe/WebKeyboardEventWPE.cpp
    M Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h
    M Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm
    M Source/WebKitLegacy/ios/WebCoreSupport/WebVisiblePosition.mm
    M Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp
    M Tools/TestWebKitAPI/Tests/WTF/StringView.cpp

  Log Message:
  -----------
  Adopt char32_t instead of UChar32 to sidestep ambiguity with int and int32_t
https://bugs.webkit.org/show_bug.cgi?id=265478
rdar://118900819

Reviewed by Alex Christensen.

Use char32_t instead of UChar32 almost everywhere. This allows us to remove
StringBuilder::appendCharacter since we can make StringBuilder::append handle
char32_t as a character rather than as int32_t (what UChar32 is defined as).

The ICU functions and macros that work with UChar32 mostly just work with char32_t.
There is a tiny number of exceptions to that rule that result in us using UChar32
in a couple places, but this changes every other instance outside ICU.

Also fixed UTF-8 conversion in the XSLT code to work more efficiently with
StringBuilder; added a new FromUTF8 adapter to makeString and StringBuilder::append.

* Source/JavaScriptCore/parser/Lexer.cpp:
(JSC::ParsedUnicodeEscapeValue::ParsedUnicodeEscapeValue): Use char32_t.
(JSC::ParsedUnicodeEscapeValue::isValid const): Ditto.
(JSC::ParsedUnicodeEscapeValue::value const): Ditto.
(JSC::Lexer<CharacterType>::parseUnicodeEscape): Ditto.
(JSC::isNonLatin1IdentStart): Ditto.
(JSC::isIdentStart): Ditto.
(JSC::isSingleCharacterIdentStart): Ditto.
(JSC::isNonLatin1IdentPart): Ditto.
(JSC::isIdentPart): Ditto.
(JSC::isSingleCharacterIdentPart): Ditto.
(JSC::Lexer<LChar>::currentCodePoint const): Ditto.
(JSC::Lexer<UChar>::currentCodePoint const): Ditto.
(JSC::Lexer<CharacterType>::recordUnicodeCodePoint): Ditto.
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase): Ditto.
(JSC::Lexer<T>::lexWithoutClearingLineTerminator): Ditto.

* Source/JavaScriptCore/parser/Lexer.h: Use char32_t.
Define errorCodePoint.

* Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:
(JSC::encode): Use char32_t.
(JSC::decode): Use char32_t and U_SENTINEL.

* Source/JavaScriptCore/runtime/StringPrototype.cpp:
(JSC::codePointAt): Use char32_t.
* Source/JavaScriptCore/yarr/YarrCanonicalize.h:
(JSC::Yarr::canonicalCharacterSetInfo): Ditto.
(JSC::Yarr::canonicalRangeInfoFor): Ditto.
(JSC::Yarr::getCanonicalPair): Ditto.
(JSC::Yarr::isCanonicallyUnique): Ditto.
(JSC::Yarr::areCanonicallyEquivalent): Ditto.
* Source/JavaScriptCore/yarr/YarrCanonicalizeUCS2.cpp: Ditto.
* Source/JavaScriptCore/yarr/YarrCanonicalizeUCS2.js:
(printHeader): Ditto.

* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::InputStream::read): Use char32_t and errorCodePoint.
(JSC::Yarr::Interpreter::InputStream::readChecked): Ditto.
(JSC::Yarr::Interpreter::InputStream::readCheckedDontAdvance): Ditto.
(JSC::Yarr::Interpreter::InputStream::readForCharacterDump): Ditto.
(JSC::Yarr::Interpreter::InputStream::tryReadBackward): Ditto.
(JSC::Yarr::Interpreter::InputStream::readSurrogatePairChecked): Ditto.
(JSC::Yarr::Interpreter::InputStream::reread): Ditto.
(JSC::Yarr::Interpreter::InputStream::prev): Ditto.
(JSC::Yarr::Interpreter::testCharacterClass): Ditto.
(JSC::Yarr::Interpreter::checkCharacter): Ditto.
(JSC::Yarr::Interpreter::checkSurrogatePair): Ditto.
(JSC::Yarr::Interpreter::checkCasedCharacter): Ditto.
(JSC::Yarr::Interpreter::checkCharacterClass): Ditto.
(JSC::Yarr::Interpreter::checkCharacterClassDontAdvanceInputForNonBMP): Ditto.
(JSC::Yarr::ByteCompiler::atomPatternCharacter): Ditto.

* Source/JavaScriptCore/yarr/YarrInterpreter.h:
(JSC::Yarr::ByteTerm::ByteTerm): Use char32_t.
* Source/JavaScriptCore/yarr/YarrJIT.cpp:
(JSC::Yarr::BoyerMooreInfo::set): Ditto.
(JSC::Yarr::BoyerMooreInfo::addCharacters): Ditto.
* Source/JavaScriptCore/yarr/YarrJIT.h:
(JSC::Yarr::BoyerMooreFastCandidates::at const): Ditto.
(JSC::Yarr::BoyerMooreFastCandidates::add): Ditto.
(JSC::Yarr::BoyerMooreBitmap::add): Ditto.
(JSC::Yarr::BoyerMooreBitmap::addCharacters): Ditto.
(JSC::Yarr::BoyerMooreBitmap::addRanges): Ditto.

* Source/JavaScriptCore/yarr/YarrParser.h: Use char32_t and errorCodePoint.
(JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter): Ditto.
(JSC::Yarr::Parser::ClassSetParserDelegate::atomPatternCharacter): Ditto.
(JSC::Yarr::Parser::ClassStringDisjunctionParserDelegate::atomPatternCharacter): Ditto.
(JSC::Yarr::Parser::isIdentityEscapeAnError): Ditto.
(JSC::Yarr::Parser::parseEscape): Ditto.
(JSC::Yarr::Parser::consumePossibleSurrogatePair): Ditto.
(JSC::Yarr::Parser::consumeAndCheckIfValidClassSetCharacter): Ditto.
(JSC::Yarr::Parser::parseClassSet): Ditto.
(JSC::Yarr::Parser::parseClassStringDisjunction): Ditto.
(JSC::Yarr::Parser::peek): Ditto.
(JSC::Yarr::Parser::tryConsumeUnicodeEscape): Ditto.
(JSC::Yarr::Parser::tryConsumeIdentifierCharacter): Ditto.
(JSC::Yarr::Parser::isIdentifierStart): Ditto.
(JSC::Yarr::Parser::isIdentifierPart): Ditto.
(JSC::Yarr::Parser::isUnicodePropertyValueExpressionChar): Ditto.
(JSC::Yarr::Parser::consume): Ditto.
(JSC::Yarr::Parser::tryConsumeHex): Ditto.
(JSC::Yarr::Parser::tryConsumeGroupName): Ditto.
(JSC::Yarr::Parser::tryConsumeUnicodePropertyExpression): Ditto.

* Source/JavaScriptCore/yarr/YarrPattern.cpp:
(JSC::Yarr::CharacterClassConstructor::appendInverted): Use char32_t.
(JSC::Yarr::CharacterClassConstructor::putChar): Ditto.
(JSC::Yarr::CharacterClassConstructor::putCharNonUnion): Ditto.
(JSC::Yarr::CharacterClassConstructor::putUnicodeIgnoreCase): Ditto.
(JSC::Yarr::CharacterClassConstructor::putRange): Ditto.
(JSC::Yarr::CharacterClassConstructor::atomClassStringDisjunction): Ditto.
(JSC::Yarr::CharacterClassConstructor::performSetOpWithStrings): Ditto.
(JSC::Yarr::CharacterClassConstructor::performSetOpWithMatches): Ditto.
(JSC::Yarr::CharacterClassConstructor::compareUTF32Strings): Ditto.
(JSC::Yarr::CharacterClassConstructor::sort): Ditto.
(JSC::Yarr::CharacterClassConstructor::addSorted): Ditto.
(JSC::Yarr::CharacterClassConstructor::addSortedRange): Ditto.
(JSC::Yarr::CharacterClassConstructor::unionStrings): Ditto.
(JSC::Yarr::CharacterClassConstructor::intersectionStrings): Ditto.
(JSC::Yarr::CharacterClassConstructor::subtractionStrings): Ditto.
(JSC::Yarr::CharacterClassConstructor::asciiOpSorted): Ditto.
(JSC::Yarr::CharacterClassConstructor::unicodeOpSorted): Ditto.
(JSC::Yarr::CharacterClassConstructor::coalesceTables): Ditto.
(JSC::Yarr::YarrPatternConstructor::atomPatternCharacter): Ditto.
(JSC::Yarr::YarrPatternConstructor::atomCharacterClassAtom): Ditto.
(JSC::Yarr::YarrPatternConstructor::atomCharacterClassRange): Ditto.
(JSC::Yarr::YarrPatternConstructor::atomClassStringDisjunction): Ditto.
(JSC::Yarr::dumpUChar32): Ditto.
(JSC::Yarr::dumpCharacterClass): Ditto.
* Source/JavaScriptCore/yarr/YarrPattern.h:
(JSC::Yarr::CharacterRange::CharacterRange): Ditto.
(JSC::Yarr::CharacterClass::CharacterClass): Ditto.
(JSC::Yarr::ClassSet::ClassSet): Ditto.
(JSC::Yarr::PatternTerm::PatternTerm): Ditto.
* Source/JavaScriptCore/yarr/YarrSyntaxChecker.cpp:
(JSC::Yarr::SyntaxChecker::atomPatternCharacter): Ditto.
(JSC::Yarr::SyntaxChecker::atomClassStringDisjunction): Ditto.
* Source/JavaScriptCore/yarr/generateYarrCanonicalizeUnicode:
(Canonicalize.createTables): Ditto.
* Source/JavaScriptCore/yarr/generateYarrUnicodePropertyTables.py:
(PropertyData.convertStringToCppFormat): Ditto.
(PropertyData.dump): Ditto.

* Source/WTF/wtf/ASCIICType.h:
(WTF::isASCIIAlphaCaselessEqual): Updated to compile without warnings both on
platforms where char is signed and platforms where char is unsigned.

* Source/WTF/wtf/PrintStream.cpp:
(WTF::printInternal): Use char32_t.
* Source/WTF/wtf/PrintStream.h: Ditto.
* Source/WTF/wtf/URLHelpers.cpp:
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_ARMENIAN>): Ditto.
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_TAMIL>): Ditto.
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_CANADIAN_ABORIGINAL>): Ditto.
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_THAI>): Ditto.
(WTF::URLHelpers::isOfScriptType): Ditto.
(WTF::URLHelpers::isLookalikeSequence): Ditto.
(WTF::URLHelpers::isLookalikeSequence<USCRIPT_ARABIC>): Ditto.
(WTF::URLHelpers::isLookalikeCharacter): Ditto.
(WTF::URLHelpers::allCharactersInAllowedIDNScriptList): Ditto.
(WTF::URLHelpers::escapeUnsafeCharacters): Ditto.
* Source/WTF/wtf/URLParser.cpp:
(WTF::appendCodePoint): Ditto.
(WTF::URLParser::appendToASCIIBuffer): Ditto.
(WTF::URLParser::utf8PercentEncode): Ditto.
(WTF::URLParser::utf8QueryEncode): Ditto.
(WTF::URLParser::isSingleDotPathSegment): Ditto.
(WTF::URLParser::isDoubleDotPathSegment): Ditto.
(WTF::URLParser::consumeSingleDotPathSegment): Ditto.
(WTF::URLParser::consumeDoubleDotPathSegment): Ditto.
(WTF::URLParser::checkLocalhostCodePoint): Ditto.
* Source/WTF/wtf/URLParser.h: Ditto.

* Source/WTF/wtf/text/AtomString.cpp:
(WTF::replaceUnpairedSurrogatesWithReplacementCharacterInternal): Use append.

* Source/WTF/wtf/text/CodePointIterator.h:
(WTF::CodePointIterator<LChar>::operator const): Use char32_t.
(WTF::CodePointIterator<UChar>::operator const): Ditto.

* Source/WTF/wtf/text/StringBuilder.h:
(WTF::StringBuilder::appendCharacter): Deleted.

* Source/WTF/wtf/text/StringConcatenate.h: Added two new adapters. One makes
char32_t work with makeString and StringBuilder::append, and the other, FromUT8,
supports converting from UTF-8 as part of the process of calling makeString or
StringBuilder::append.

* Source/WTF/wtf/text/StringImpl.cpp:
(WTF::StringImpl::characterStartingAt): Use char32_t.
* Source/WTF/wtf/text/StringImpl.h: Ditto.
* Source/WTF/wtf/text/StringView.h:
(WTF::StringView::CodePoints::Iterator::operator* const): Ditto.
* Source/WTF/wtf/text/WTFString.cpp:
(WTF::String::characterStartingAt const): Ditto.
(WTF::String::fromCodePoint): Ditto.
* Source/WTF/wtf/text/WTFString.h: Ditto.
* Source/WTF/wtf/unicode/CharacterNames.h: Ditto.

* Source/WTF/wtf/unicode/UTF8Conversion.cpp:
(WTF::Unicode::convertLatin1ToUTF8): Use char32_t and sentinelCodePoint.
Removed unneeded reinterpret_cast.
(WTF::Unicode::convertUTF16ToUTF8): Ditto.
(WTF::Unicode::convertUTF8ToUTF16Impl): Ditto.
(WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits): Ditto.
(WTF::Unicode::equalUTF16WithUTF8): Rewrite in a straightforward way using
U8_NEXT and U16_NEXT_UNSAFE instead of our own more complex code.
(WTF::Unicode::equalLatin1WithUTF8): Rewrite in a straightforward way using
U8_NEXT instead of our own more complex code.
(WTF::Unicode::computeUTFLengths): Added.
* Source/WTF/wtf/unicode/UTF8Conversion.h: Added computeUTFLengths.

* Source/WebCore/PAL/pal/text/EncodingTables.cpp: Use char32_t.
* Source/WebCore/PAL/pal/text/EncodingTables.h: Ditto.
* Source/WebCore/PAL/pal/text/TextCodec.cpp:
(PAL::TextCodec::getUnencodableReplacement): Ditto.
* Source/WebCore/PAL/pal/text/TextCodec.h: Ditto.
* Source/WebCore/PAL/pal/text/TextCodecCJK.cpp:
(PAL::TextCodecCJK::eucJPDecode): Ditto.
(PAL::eucJPEncode): Ditto.
(PAL::iso2022JPEncode): Ditto.
(PAL::shiftJISEncode): Ditto.
(PAL::eucKREncode): Ditto.
(PAL::big5Encode): Ditto.
(PAL::gb18030Ranges): Ditto.
(PAL::gb18030RangesCodePoint): Ditto.
(PAL::gb18030RangesPointer): Ditto.
(PAL::gb180302022Encode): Ditto.
(PAL::gb180302022Decode): Ditto.
(PAL::TextCodecCJK::gb18030Decode): Ditto.
(PAL::gbEncodeShared): Ditto.
(PAL::gb18030Encode): Ditto.
(PAL::gbkEncode): Ditto.
(PAL::appendDecimal): Ditto.
(PAL::urlEncodedEntityUnencodableHandler): Ditto.
(PAL::entityUnencodableHandler): Ditto.
(PAL::unencodableHandler): Ditto.
(PAL::TextCodecCJK::big5Decode): Ditto. Use append. The old code was using
appendCharacter, which was overkill for appending BMP characters.

* Source/WebCore/PAL/pal/text/TextCodecSingleByte.cpp:
(PAL::encode): Use char32_t.
* Source/WebCore/PAL/pal/text/TextCodecUTF16.cpp:
(PAL::TextCodecUTF16::decode): Ditto.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::characterForCharacterOffset): Ditto.
(WebCore::AXObjectCache::characterAfter): Ditto.
(WebCore::AXObjectCache::characterBefore): Ditto.
* Source/WebCore/accessibility/AXObjectCache.h: Ditto.
* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::offsetMapping): Ditto.
* Source/WebCore/contentextensions/URLFilterParser.cpp:
(WebCore::ContentExtensions::PatternParser::atomClassStringDisjunction): Ditto.
* Source/WebCore/css/CSSFontFace.cpp:
(WebCore::CSSFontFace::rangesMatchCodePoint const): Ditto.
* Source/WebCore/css/CSSFontFace.h: Ditto.
* Source/WebCore/css/CSSFontFaceSet.cpp:
(WebCore::codePointsFromString): Ditto.

* Source/WebCore/css/CSSMarkup.cpp:
(WebCore::serializeCharacter): Use append and char32_t.
(WebCore::serializeCharacterAsCodePoint): Ditto.
(WebCore::serializeIdentifier): Ditto.
(WebCore::serializeString): Ditto.

* Source/WebCore/css/CSSUnicodeRangeValue.h: Use char32_t.
* Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp:
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeUnicodeRange): Ditto.

* Source/WebCore/css/parser/CSSTokenizer.cpp:
(WebCore::CSSTokenizer::consumeStringTokenUntil): Use append.
(WebCore::CSSTokenizer::consumeURLToken): Ditto.
(WebCore::CSSTokenizer::consumeName): Ditto.
(WebCore::CSSTokenizer::consumeEscape): Use char32_t.
* Source/WebCore/css/parser/CSSTokenizer.h: Ditto.

* Source/WebCore/dom/Document.cpp:
(WebCore::isValidNameStart): Use char32_t.
(WebCore::isValidNamePart): Ditto.
(WebCore::operator<): Ditto.
(WebCore::isPotentialCustomElementNameCharacter): Ditto.
(WebCore::isValidNameNonASCII): Ditto.
(WebCore::Document::parseQualifiedName): Ditto.
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::editorUIUpdateTimerFired): Ditto.
(WebCore::candidateWouldReplaceText): Ditto.
* Source/WebCore/editing/ReplaceSelectionCommand.cpp:
(WebCore::isCharacterSmartReplaceExemptConsideringNonBreakingSpace): Ditto.
* Source/WebCore/editing/SmartReplace.cpp:
(WebCore::isCharacterSmartReplaceExempt): Ditto.
* Source/WebCore/editing/SmartReplace.h: Ditto.
* Source/WebCore/editing/SmartReplaceCF.cpp:
(WebCore::isCharacterSmartReplaceExempt): Ditto.
* Source/WebCore/editing/TextIterator.cpp:
(WebCore::isNonLatin1Separator): Ditto.
(WebCore::isSeparator): Ditto.
(WebCore::SearchBuffer::SearchBuffer): Ditto.
(WebCore::SearchBuffer::isWordStartMatch const): Ditto.
* Source/WebCore/editing/TypingCommand.cpp:
(WebCore::TypingCommand::markMisspellingsAfterTyping): Ditto.
* Source/WebCore/editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::characterAfter const): Ditto.
* Source/WebCore/editing/VisiblePosition.h:
(WebCore::VisiblePosition::characterBefore const): Ditto.
* Source/WebCore/editing/VisibleUnits.cpp:
(WebCore::charactersAroundPosition): Ditto.
* Source/WebCore/editing/VisibleUnits.h: Ditto.

* Source/WebCore/html/parser/HTMLEntityParser.cpp:
(WebCore::makeEntity): Use char32_t.
(WebCore::consumeDecimalHTMLEntity): Use uint32_t.
(WebCore::consumeHexHTMLEntity): Ditto.

* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::canBreakBefore): Use char32_t.
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::replaceNonPreservedNewLineAndTabCharactersAndAppend): Ditto.

* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::fallbackFontsForRunWithIterator): Use char32_t.
Removed unhelpful second call to u_toupper.
(WebCore::Layout::enclosingGlyphBoundsForRunWithIterator): Ditto.
(WebCore::Layout::TextUtil::isStrongDirectionalityCharacter): Ditto.
(WebCore::Layout::TextUtil::containsStrongDirectionalityText): Ditto.
(WebCore::Layout::TextUtil::firstUserPerceivedCharacterLength): Ditto.
(WebCore::Layout::TextUtil::hasPositionDependentContentWidth): Ditto.
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h: Ditto.

* Source/WebCore/mathml/MathMLOperatorDictionary.cpp:
(WebCore::ExtractChar): Use char32_t.
(WebCore::ExtractKeyHorizontal): Ditto.
(WebCore::MathMLOperatorDictionary::search): Ditto.
(WebCore::MathMLOperatorDictionary::isVertical): Ditto.
* Source/WebCore/mathml/MathMLOperatorDictionary.h: Ditto.
* Source/WebCore/mathml/MathMLOperatorElement.h: Ditto.
* Source/WebCore/mathml/MathMLTokenElement.cpp:
(WebCore::MathMLTokenElement::convertToSingleCodePoint): Ditto.
* Source/WebCore/mathml/MathMLTokenElement.h: Ditto.
* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::advanceByCombiningCharacterSequence): Ditto.
(WebCore::ComplexTextController::collectComplexTextRuns): Ditto.
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Ditto.
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Ditto.
* Source/WebCore/platform/graphics/ComplexTextController.h: Ditto.
* Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h:
(WebCore::ComposedCharacterClusterTextIterator::consume): Ditto.
* Source/WebCore/platform/graphics/Font.cpp:
(WebCore::Font::platformGlyphInit): Ditto.
(WebCore::codePointSupportIndex): Ditto.
(WebCore::Font::glyphForCharacter const): Ditto.
(WebCore::Font::glyphDataForCharacter const): Ditto.
(WebCore::Font::supportsCodePoint const): Ditto.
* Source/WebCore/platform/graphics/Font.h: Ditto.
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::glyphDataForCharacter const): Ditto.
(WebCore::FontCascade::characterRangeCodePath): Ditto.
(WebCore::FontCascade::isCJKIdeograph): Ditto.
(WebCore::FontCascade::isCJKIdeographOrSymbol): Ditto.
(WebCore::FontCascade::expansionOpportunityCountInternal): Ditto.
(WebCore::FontCascade::leftExpansionOpportunity): Ditto.
(WebCore::FontCascade::rightExpansionOpportunity): Ditto.
(WebCore::FontCascade::canReceiveTextEmphasis): Ditto.
(WebCore::computeUnderlineType): Ditto.
(WebCore::FontCascade::getEmphasisMarkGlyphData const): Ditto.
(WebCore::FontCascade::fontForCombiningCharacterSequence const): Ditto.
(WebCore::shouldSynthesizeSmallCaps): Ditto.
(WebCore::capitalized): Ditto.
* Source/WebCore/platform/graphics/FontCascade.h: Ditto.
(WebCore::FontCascade::treatAsSpace): Ditto.
(WebCore::FontCascade::isCharacterWhoseGlyphsShouldBeDeletedForTextRendering): Ditto.
(WebCore::FontCascade::treatAsZeroWidthSpace): Ditto.
(WebCore::FontCascade::treatAsZeroWidthSpaceInComplexScript): Ditto.
* Source/WebCore/platform/graphics/FontCascadeFonts.cpp:
(WebCore::MixedFontGlyphPage::glyphDataForCharacter const): Ditto.
(WebCore::MixedFontGlyphPage::setGlyphDataForCharacter): Ditto.
(WebCore::FontCascadeFonts::GlyphPageCacheEntry::glyphDataForCharacter): Ditto.
(WebCore::FontCascadeFonts::GlyphPageCacheEntry::setGlyphDataForCharacter): Ditto.
(WebCore::isInRange): Ditto.
(WebCore::shouldIgnoreRotation): Ditto.
(WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation): Ditto.
(WebCore::findBestFallbackFont): Ditto.
(WebCore::FontCascadeFonts::glyphDataForSystemFallback): Ditto.
(WebCore::FontCascadeFonts::glyphDataForVariant): Ditto.
(WebCore::glyphPageFromFontRanges): Ditto.
(WebCore::FontCascadeFonts::glyphDataForCharacter): Ditto.
* Source/WebCore/platform/graphics/FontCascadeFonts.h: Ditto.
* Source/WebCore/platform/graphics/FontRanges.cpp:
(WebCore::FontRanges::glyphDataForCharacter const): Ditto.
(WebCore::FontRanges::fontForCharacter const): Ditto.
* Source/WebCore/platform/graphics/FontRanges.h: Ditto.
(WebCore::FontRanges::Range::Range): Ditto.
(WebCore::FontRanges::Range::from const): Ditto.
(WebCore::FontRanges::Range::to const): Ditto.
* Source/WebCore/platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::indexForCodePoint): Ditto.
(WebCore::GlyphPage::pageNumberForCodePoint): Ditto.
(WebCore::GlyphPage::startingCodePointInPageNumber): Ditto.
(WebCore::GlyphPage::glyphDataForCharacter const): Ditto.
(WebCore::GlyphPage::glyphForCharacter const): Ditto.
* Source/WebCore/platform/graphics/Latin1TextIterator.h:
(WebCore::Latin1TextIterator::consume): Ditto.
* Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.h:
(WebCore::SurrogatePairAwareTextIterator::consume): Ditto.
* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::addToGlyphBuffer): Ditto.
(WebCore::updateCharacterAndSmallCapsIfNeeded): Ditto.
(WebCore::WidthIterator::advanceInternal): Ditto.
(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring): Ditto.
* Source/WebCore/platform/graphics/WidthIterator.h: Ditto.
* Source/WebCore/platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::resolveEmojiPolicy): Ditto.
* Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::characterSequenceIsEmoji): Ditto.
(WebCore::FontCascade::fontForCombiningCharacterSequence const):
* Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const): Ditto.
(WebCore::FontCascade::resolveEmojiPolicy): Ditto.
* Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:
(WebCore::Font::platformSupportsCodePoint const): Ditto.

* Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp: Remove
unused UTF16UChar32Iterator.h.
* Source/WebCore/platform/graphics/freetype/FontSetCache.cpp: Remove unused
UTF16UChar32Iterator.h.
(WebCore::FontSetCache::bestForCharacters): Use char32_t.
* Source/WebCore/platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
Remove UTF16UChar32Iterator.h.
(WebCore::GlyphPage::fill): Use char32_t and U16_NEXT.
* Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp: Remove
unused UTF16UChar32Iterator.h.
(WebCore::Font::platformSupportsCodePoint const): Use char32_t.
* Source/WebCore/platform/graphics/freetype/UTF16UChar32Iterator.h: Removed.

* Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
(WebCore::characterScript): Use char32_t.
(WebCore::findNextRun): Ditto.
* Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Ditto.
* Source/WebCore/platform/graphics/win/FontCacheWin.cpp:
(WebCore::currentFontContainsCharacter): Ditto.
* Source/WebCore/platform/graphics/win/SimpleFontDataCairoWin.cpp:
(WebCore::Font::platformSupportsCodePoint const): Ditto.

* Source/WebCore/platform/libwpe/PlatformKeyboardEventLibWPE.cpp:
(WebCore::PlatformKeyboardEvent::keyValueForWPEKeyCode): Use char32_t and
makeString.
(WebCore::PlatformKeyboardEvent::singleCharacterString): Ditto.

* Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::sanitizeFilename): Use HashSet<uint16_t> for a set of UChar rather
than a HashSet<UChar32>.

* Source/WebCore/platform/text/CharacterProperties.h:
(WebCore::isEmojiGroupCandidate): Use char32_t.
(WebCore::isEmojiFitzpatrickModifier): Ditto.
(WebCore::isVariationSelector): Ditto.
(WebCore::isEmojiKeycapBase): Ditto.
(WebCore::isEmojiRegionalIndicator): Ditto.
(WebCore::isEmojiWithPresentationByDefault): Ditto.
(WebCore::isEmojiModifierBase): Ditto.
(WebCore::isDefaultIgnorableCodePoint): Ditto.
(WebCore::isControlCharacter): Ditto.
(WebCore::isPrivateUseAreaCharacter): Ditto.
* Source/WebCore/platform/text/TextBoundaries.cpp:
(WebCore::endOfFirstWordBoundaryContext): Ditto.
(WebCore::startOfLastWordBoundaryContext): Ditto.
* Source/WebCore/platform/text/TextBoundaries.h:
(WebCore::requiresContextForWordBoundary): Ditto.

* Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp:
(WebCore::countLeadingSpaces): Use char32_t and U_SENTINEL.

* Source/WebCore/platform/text/mac/TextBoundaries.mm:
(WebCore::isSkipCharacter): Use char32_t.
(WebCore::isWhitespaceCharacter): Ditto.
(WebCore::isWordDelimitingCharacter): Ditto.
(WebCore::isSymbolCharacter): Ditto.
(WebCore::isAmbiguousBoundaryCharacter): Ditto.
(WebCore::findSimpleWordBoundary): Ditto.
(WebCore::findWordBoundary): Ditto.
* Source/WebCore/rendering/LegacyInlineIterator.h:
(WebCore::LegacyInlineIterator::incrementByCodePointInTextNode): Ditto.

* Source/WebCore/rendering/RenderText.cpp:
(WebCore::capitalize): Use char32_t.
(WebCore::RenderText::initiateFontLoadingByAccessingGlyphDataAndComputeCanUseSimplifiedTextMeasuring):
Use char32_t and append.
(WebCore::convertToFullSizeKana): Use char32_t. Updated fast path where no conversion
is needed to be even faster by not allocating a StringBuilder.

* Source/WebCore/rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::setOperator): Use char32_t.
(WebCore::MathOperator::getGlyph const): Ditto.
(WebCore::glyphDataForCodePointOrFallbackGlyph): Ditto.
* Source/WebCore/rendering/mathml/MathOperator.h: Ditto.
* Source/WebCore/rendering/mathml/RenderMathMLFencedOperator.h: Ditto.
* Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp: Ditto.
(WebCore::RenderMathMLOperator::textContent const): Ditto.
(WebCore::RenderMathMLOperator::isInvisibleOperator const): Ditto.
* Source/WebCore/rendering/mathml/RenderMathMLOperator.h: Ditto.
* Source/WebCore/rendering/mathml/RenderMathMLToken.cpp:
(WebCore::ExtractKey): Ditto.
(WebCore::MathVariantMappingSearch): Ditto.
(WebCore::mathVariant): Ditto.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Ditto.
* Source/WebCore/rendering/mathml/RenderMathMLToken.h: Ditto.
* Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::isPunctuationForFirstLetter): Ditto.
(WebCore::shouldSkipForFirstLetter): Ditto.
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers): Ditto.
* Source/WebCore/svg/SVGParserUtilities.h: Ditto.
* Source/WebCore/svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendFormat12CMAPTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendFormat4CMAPTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendCMAPTable): Ditto.
(WebCore::SVGToOTFFontConverter::firstGlyph const): Ditto.
(WebCore::codepointToString): Ditto.
(WebCore::SVGToOTFFontConverter::glyphsForCodepoint const): Ditto.
(WebCore::SVGToOTFFontConverter::appendLigatureGlyphs): Ditto.
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically): Ditto.

* Source/WebCore/xml/XSLTProcessorLibxslt.cpp:
(WebCore::writeToStringBuilder): Use FromUTF8, resolving the inefficiency
mentioned here in a FIXME comment and removing a use of UChar32.

* Source/WebKit/Shared/EditorState.h: Use char32_t.
* Source/WebKit/Shared/EditorState.serialization.in: Ditto.

* Source/WebKit/Shared/wpe/WebKeyboardEventWPE.cpp:
(WebKit::WebKeyboardEvent::keyValueStringForWPEKeyval): Use char32_t and
makeString.
(WebKit::WebKeyboardEvent::singleCharacterStringForWPEKeyval): Ditto.

* Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h: Ditto.
* Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::pressedCharKey): Ditto.
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: Ditto.

* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(textRelativeToSelectionStart): Use char32_t and append.

* Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm:
(isAlphaNumericCharacter): Use char32_t.
(SimpleSmartExtendStart): Ditto.
(SimpleSmartExtendEnd): Ditto.
* Source/WebKitLegacy/ios/WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition positionAtStartOrEndOfWord]): Ditto.
(-[WebVisiblePosition atAlphaNumericBoundaryInDirection:]): Ditto.

* Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp: Use char32_t
and literals of type char32_t and char16_t.
* Tools/TestWebKitAPI/Tests/WTF/StringView.cpp: Ditto.

Canonical link: https://commits.webkit.org/271373@main




More information about the webkit-changes mailing list