Changeset 139760 in webkit
- Timestamp:
- Jan 15, 2013 11:06:25 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r139756 r139760 1 2013-01-15 Tony Gentilcore <tonyg@chromium.org> 2 3 Make AtomicMarkupTokenBase use a bare UChar* for external characters 4 https://bugs.webkit.org/show_bug.cgi?id=106919 5 6 Reviewed by Eric Seidel. 7 8 This allows an arbitrary backing for external characters which is necessary for the threaded HTML parser. 9 10 No new tests because no new functionality. 11 12 * html/parser/HTMLTreeBuilder.cpp: 13 (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer): 14 (WebCore::HTMLTreeBuilder::processTokenInForeignContent): 15 * xml/parser/MarkupTokenBase.h: 16 (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase): 17 (WebCore::AtomicMarkupTokenBase::characters): 18 (AtomicMarkupTokenBase): 19 (WebCore::AtomicMarkupTokenBase::charactersLength): 20 (WebCore::AtomicMarkupTokenBase::clearExternalCharacters): 21 * xml/parser/XMLTreeBuilder.cpp: 22 (WebCore::XMLTreeBuilder::processCharacter): 23 1 24 2013-01-15 Arko Saha <arko@motorola.com> 2 25 -
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp
r139523 r139760 150 150 public: 151 151 explicit ExternalCharacterTokenBuffer(AtomicHTMLToken* token) 152 : m_current(token->characters() .data())153 , m_end(m_current + token->characters ().size())152 : m_current(token->characters()) 153 , m_end(m_current + token->charactersLength()) 154 154 , m_isAll8BitData(token->isAll8BitData()) 155 155 { … … 2855 2855 return; 2856 2856 case HTMLTokenTypes::Character: { 2857 String characters = String(token->characters() .data(), token->characters().size());2857 String characters = String(token->characters(), token->charactersLength()); 2858 2858 m_tree.insertTextNode(characters); 2859 2859 if (m_framesetOk && !isAllWhitespaceOrReplacementCharacters(characters)) -
trunk/Source/WebCore/xml/parser/MarkupTokenBase.h
r132373 r139760 459 459 break; 460 460 case Token::Type::Character: 461 m_externalCharacters = &token->characters(); 461 m_externalCharacters = token->characters().data(); 462 m_externalCharactersLength = token->characters().size(); 462 463 m_isAll8BitData = token->isAll8BitData(); 463 464 break; … … 471 472 , m_name(name) 472 473 , m_externalCharacters(0) 474 , m_externalCharactersLength(0) 473 475 , m_isAll8BitData(false) 474 476 , m_attributes(attributes) … … 515 517 } 516 518 517 const typename Token::DataVector&characters() const519 const UChar* characters() const 518 520 { 519 521 ASSERT(m_type == Token::Type::Character); 520 return *m_externalCharacters; 522 return m_externalCharacters; 523 } 524 525 size_t charactersLength() const 526 { 527 ASSERT(m_type == Token::Type::Character); 528 return m_externalCharactersLength; 521 529 } 522 530 … … 549 557 { 550 558 m_externalCharacters = 0; 559 m_externalCharactersLength = 0; 551 560 m_isAll8BitData = false; 552 561 } … … 576 585 // FIXME: Add a mechanism for "internalizing" the characters when the 577 586 // HTMLToken is destructed. 578 const typename Token::DataVector* m_externalCharacters; 587 const UChar* m_externalCharacters; 588 size_t m_externalCharactersLength; 579 589 bool m_isAll8BitData; 580 590 -
trunk/Source/WebCore/xml/parser/XMLTreeBuilder.cpp
r133976 r139760 274 274 void XMLTreeBuilder::processCharacter(const AtomicXMLToken& token) 275 275 { 276 appendToText(token.characters() .data(), token.characters().size());276 appendToText(token.characters(), token.charactersLength()); 277 277 } 278 278
Note: See TracChangeset
for help on using the changeset viewer.