Changeset 295167 in webkit
- Timestamp:
- Jun 2, 2022, 7:08:02 PM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 4 edited
-
WTF/wtf/text/StringBuilder.h (modified) (1 diff)
-
WebCore/html/parser/HTMLToken.h (modified) (2 diffs)
-
WebCore/html/parser/HTMLTokenizer.cpp (modified) (2 diffs)
-
WebCore/html/parser/HTMLTokenizer.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/wtf/text/StringBuilder.h
r294852 r295167 94 94 const LChar* characters8() const { return characters<LChar>(); } 95 95 const UChar* characters16() const { return characters<UChar>(); } 96 template<typename CharacterType> Span<const CharacterType> span() const { return Span { characters<CharacterType>(), length() }; } 96 97 97 98 unsigned capacity() const; -
trunk/Source/WebCore/html/parser/HTMLToken.h
r295009 r295167 123 123 void appendToCharacter(UChar); 124 124 void appendToCharacter(const Vector<LChar, 32>&); 125 template<typename CharacterType> void appendToCharacter(Span<const CharacterType>); 125 126 126 127 // Comment. … … 374 375 m_type = Character; 375 376 m_data.appendVector(characters); 377 } 378 379 template<typename CharacterType> 380 inline void HTMLToken::appendToCharacter(Span<const CharacterType> characters) 381 { 382 m_type = Character; 383 m_data.append(characters); 384 if constexpr (std::is_same_v<CharacterType, UChar>) { 385 if (!charactersIsAll8BitData()) 386 return; 387 for (auto character : characters) 388 m_data8BitCheck |= character; 389 } 376 390 } 377 391 -
trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp
r295143 r295167 82 82 } 83 83 84 template<typename CharacterType> 85 inline void HTMLTokenizer::bufferCharacters(Span<const CharacterType> characters) 86 { 87 #if ASSERT_ENABLED 88 for (auto character : characters) 89 ASSERT(character != kEndOfFileMarker); 90 #endif 91 m_token.appendToCharacter(characters); 92 } 93 84 94 inline bool HTMLTokenizer::emitAndResumeInDataState(SegmentedString& source) 85 95 { … … 131 141 bufferASCIICharacter('&'); 132 142 } else { 133 for (unsigned i = 0; i < decodedEntity.length(); ++i) 134 bufferCharacter(decodedEntity[i]); 143 if (decodedEntity.is8Bit()) 144 bufferCharacters(decodedEntity.span<LChar>()); 145 else 146 bufferCharacters(decodedEntity.span<UChar>()); 135 147 } 136 148 return true; -
trunk/Source/WebCore/html/parser/HTMLTokenizer.h
r295143 r295167 160 160 void bufferASCIICharacter(UChar); 161 161 void bufferCharacter(UChar); 162 template<typename CharacterType> void bufferCharacters(Span<const CharacterType>); 162 163 163 164 bool emitAndResumeInDataState(SegmentedString&);
Note:
See TracChangeset
for help on using the changeset viewer.