diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-08-21 10:57:44 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-08-21 10:57:44 +0200 |
commit | 5ef7c8a6a70875d4430752d146bdcb069605d71d (patch) | |
tree | f6256640b6c46d7da221435803cae65326817ba2 /Source/WebCore/xml/parser | |
parent | decad929f578d8db641febc8740649ca6c574638 (diff) | |
download | qtwebkit-5ef7c8a6a70875d4430752d146bdcb069605d71d.tar.gz |
Imported WebKit commit 356d83016b090995d08ad568f2d2c243aa55e831 (http://svn.webkit.org/repository/webkit/trunk@126147)
New snapshot including various build fixes for newer Qt 5
Diffstat (limited to 'Source/WebCore/xml/parser')
-rw-r--r-- | Source/WebCore/xml/parser/MarkupTokenBase.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/WebCore/xml/parser/MarkupTokenBase.h b/Source/WebCore/xml/parser/MarkupTokenBase.h index 6bb0cb8b4..14914eeb1 100644 --- a/Source/WebCore/xml/parser/MarkupTokenBase.h +++ b/Source/WebCore/xml/parser/MarkupTokenBase.h @@ -97,6 +97,8 @@ public: m_range.m_end = 0; m_baseOffset = 0; m_data.clear(); + m_orAllData = 0; + m_convertTo8BitIfPossible = false; } bool isUninitialized() { return m_type == TypeSet::Uninitialized; } @@ -172,6 +174,13 @@ public: m_data.append(character); } + void appendToCharacter(UChar character) + { + ASSERT(m_type == TypeSet::Character); + m_data.append(character); + m_orAllData |= character; + } + template<typename T> void appendToCharacter(T characters) { @@ -274,6 +283,7 @@ public: { ASSERT(m_type == TypeSet::Character); m_data.clear(); + m_orAllData = 0; } void eraseValueOfAttribute(size_t i) @@ -294,6 +304,16 @@ public: return m_data; } + void setConvertTo8BitIfPossible() + { + m_convertTo8BitIfPossible = true; + } + + bool isAll8BitData() const + { + return m_convertTo8BitIfPossible && (m_orAllData <= 0xff); + } + // FIXME: Distinguish between a missing public identifer and an empty one. const WTF::Vector<UChar>& publicIdentifier() const { @@ -370,6 +390,8 @@ protected: typename Attribute::Range m_range; // Always starts at zero. int m_baseOffset; DataVector m_data; + UChar m_orAllData; + bool m_convertTo8BitIfPossible; // For DOCTYPE OwnPtr<DoctypeData> m_doctypeData; @@ -413,6 +435,7 @@ public: break; case Token::Type::Character: m_externalCharacters = &token->characters(); + m_isAll8BitData = token->isAll8BitData(); break; default: break; @@ -423,6 +446,7 @@ public: : m_type(type) , m_name(name) , m_externalCharacters(0) + , m_isAll8BitData(false) , m_attributes(attributes) { ASSERT(usesName()); @@ -472,6 +496,11 @@ public: return *m_externalCharacters; } + bool isAll8BitData() const + { + return m_isAll8BitData; + } + const String& comment() const { ASSERT(m_type == Token::Type::Comment); @@ -495,6 +524,7 @@ public: void clearExternalCharacters() { m_externalCharacters = 0; + m_isAll8BitData = false; } protected: @@ -522,6 +552,7 @@ protected: // FIXME: Add a mechanism for "internalizing" the characters when the // HTMLToken is destructed. const typename Token::DataVector* m_externalCharacters; + bool m_isAll8BitData; // For DOCTYPE OwnPtr<typename Token::DoctypeData> m_doctypeData; |