Title: [140569] trunk/Source/WebCore
Revision
140569
Author
[email protected]
Date
2013-01-23 12:13:00 -0800 (Wed, 23 Jan 2013)

Log Message

Remove DocType support from MarkupTokenBase now that NEW_XML is gone
https://bugs.webkit.org/show_bug.cgi?id=107709

Reviewed by Adam Barth.

Just moving code out of MarkupTokenBase and into HTMLToken.
The test for this change is if it compiles. :)  Which it does.

* html/parser/HTMLToken.h:
(DoctypeData):
(WebCore::DoctypeData::DoctypeData):
(WebCore):
(WebCore::HTMLToken::appendToName):
(WebCore::HTMLToken::name):
(HTMLToken):
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::publicIdentifier):
(WebCore::HTMLToken::systemIdentifier):
(WebCore::HTMLToken::setPublicIdentifierToEmptyString):
(WebCore::HTMLToken::setSystemIdentifierToEmptyString):
(WebCore::HTMLToken::appendToPublicIdentifier):
(WebCore::HTMLToken::appendToSystemIdentifier):
(WebCore::HTMLToken::releaseDoctypeData):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(AtomicHTMLToken):
* html/parser/HTMLTokenTypes.h:
* xml/parser/MarkupTokenBase.h:
(WebCore):
(MarkupTokenBase):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (140568 => 140569)


--- trunk/Source/WebCore/ChangeLog	2013-01-23 20:11:56 UTC (rev 140568)
+++ trunk/Source/WebCore/ChangeLog	2013-01-23 20:13:00 UTC (rev 140569)
@@ -1,3 +1,35 @@
+2013-01-23  Eric Seidel  <[email protected]>
+
+        Remove DocType support from MarkupTokenBase now that NEW_XML is gone
+        https://bugs.webkit.org/show_bug.cgi?id=107709
+
+        Reviewed by Adam Barth.
+
+        Just moving code out of MarkupTokenBase and into HTMLToken.
+        The test for this change is if it compiles. :)  Which it does.
+
+        * html/parser/HTMLToken.h:
+        (DoctypeData):
+        (WebCore::DoctypeData::DoctypeData):
+        (WebCore):
+        (WebCore::HTMLToken::appendToName):
+        (WebCore::HTMLToken::name):
+        (HTMLToken):
+        (WebCore::HTMLToken::beginDOCTYPE):
+        (WebCore::HTMLToken::publicIdentifier):
+        (WebCore::HTMLToken::systemIdentifier):
+        (WebCore::HTMLToken::setPublicIdentifierToEmptyString):
+        (WebCore::HTMLToken::setSystemIdentifierToEmptyString):
+        (WebCore::HTMLToken::appendToPublicIdentifier):
+        (WebCore::HTMLToken::appendToSystemIdentifier):
+        (WebCore::HTMLToken::releaseDoctypeData):
+        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
+        (AtomicHTMLToken):
+        * html/parser/HTMLTokenTypes.h:
+        * xml/parser/MarkupTokenBase.h:
+        (WebCore):
+        (MarkupTokenBase):
+
 2013-01-23  Alexis Menard  <[email protected]>
 
         transition-property accepts incorrect "all, none" as value

Modified: trunk/Source/WebCore/html/parser/HTMLToken.h (140568 => 140569)


--- trunk/Source/WebCore/html/parser/HTMLToken.h	2013-01-23 20:11:56 UTC (rev 140568)
+++ trunk/Source/WebCore/html/parser/HTMLToken.h	2013-01-23 20:13:00 UTC (rev 140569)
@@ -34,18 +34,36 @@
 
 namespace WebCore {
 
-class HTMLToken : public MarkupTokenBase<HTMLTokenTypes, HTMLTokenTypes::DoctypeData> {
+class DoctypeData {
+    WTF_MAKE_NONCOPYABLE(DoctypeData);
 public:
+    DoctypeData()
+        : m_hasPublicIdentifier(false)
+        , m_hasSystemIdentifier(false)
+        , m_forceQuirks(false)
+    {
+    }
+
+    // FIXME: This should use String instead of Vector<UChar>.
+    bool m_hasPublicIdentifier;
+    bool m_hasSystemIdentifier;
+    WTF::Vector<UChar> m_publicIdentifier;
+    WTF::Vector<UChar> m_systemIdentifier;
+    bool m_forceQuirks;
+};
+
+class HTMLToken : public MarkupTokenBase<HTMLTokenTypes> {
+public:
     void appendToName(UChar character)
     {
         ASSERT(m_type == HTMLTokenTypes::StartTag || m_type == HTMLTokenTypes::EndTag || m_type == HTMLTokenTypes::DOCTYPE);
-        MarkupTokenBase<HTMLTokenTypes, HTMLTokenTypes::DoctypeData>::appendToName(character);
+        MarkupTokenBase<HTMLTokenTypes>::appendToName(character);
     }
 
     const DataVector& name() const
     {
         ASSERT(m_type == HTMLTokenTypes::StartTag || m_type == HTMLTokenTypes::EndTag || m_type == HTMLTokenTypes::DOCTYPE);
-        return MarkupTokenBase<HTMLTokenTypes, HTMLTokenTypes::DoctypeData>::name();
+        return MarkupTokenBase<HTMLTokenTypes>::name();
     }
 
     bool forceQuirks() const
@@ -59,6 +77,74 @@
         ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
         m_doctypeData->m_forceQuirks = true;
     }
+
+    void beginDOCTYPE()
+    {
+        ASSERT(m_type == HTMLTokenTypes::Uninitialized);
+        m_type = HTMLTokenTypes::DOCTYPE;
+        m_doctypeData = adoptPtr(new DoctypeData);
+    }
+
+    void beginDOCTYPE(UChar character)
+    {
+        ASSERT(character);
+        beginDOCTYPE();
+        m_data.append(character);
+        m_orAllData |= character;
+    }
+
+    // FIXME: Distinguish between a missing public identifer and an empty one.
+    const WTF::Vector<UChar>& publicIdentifier() const
+    {
+        ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
+        return m_doctypeData->m_publicIdentifier;
+    }
+
+    // FIXME: Distinguish between a missing system identifer and an empty one.
+    const WTF::Vector<UChar>& systemIdentifier() const
+    {
+        ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
+        return m_doctypeData->m_systemIdentifier;
+    }
+
+    void setPublicIdentifierToEmptyString()
+    {
+        ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
+        m_doctypeData->m_hasPublicIdentifier = true;
+        m_doctypeData->m_publicIdentifier.clear();
+    }
+
+    void setSystemIdentifierToEmptyString()
+    {
+        ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
+        m_doctypeData->m_hasSystemIdentifier = true;
+        m_doctypeData->m_systemIdentifier.clear();
+    }
+
+    void appendToPublicIdentifier(UChar character)
+    {
+        ASSERT(character);
+        ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
+        ASSERT(m_doctypeData->m_hasPublicIdentifier);
+        m_doctypeData->m_publicIdentifier.append(character);
+    }
+
+    void appendToSystemIdentifier(UChar character)
+    {
+        ASSERT(character);
+        ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
+        ASSERT(m_doctypeData->m_hasSystemIdentifier);
+        m_doctypeData->m_systemIdentifier.append(character);
+    }
+
+    PassOwnPtr<DoctypeData> releaseDoctypeData()
+    {
+        return m_doctypeData.release();
+    }
+
+private:
+    // For DOCTYPE
+    OwnPtr<DoctypeData> m_doctypeData;
 };
 
 class AtomicHTMLToken : public RefCounted<AtomicHTMLToken> {
@@ -219,7 +305,7 @@
             break;
         case HTMLTokenTypes::DOCTYPE:
             m_name = token.data();
-            m_doctypeData = adoptPtr(new HTMLToken::DoctypeData());
+            m_doctypeData = adoptPtr(new DoctypeData());
             m_doctypeData->m_hasPublicIdentifier = true;
             m_doctypeData->m_publicIdentifier.append(token.publicIdentifier().characters(), token.publicIdentifier().length());
             m_doctypeData->m_hasSystemIdentifier = true;
@@ -300,7 +386,7 @@
     bool m_isAll8BitData;
 
     // For DOCTYPE
-    OwnPtr<HTMLTokenTypes::DoctypeData> m_doctypeData;
+    OwnPtr<DoctypeData> m_doctypeData;
 
     // For StartTag and EndTag
     bool m_selfClosing;

Modified: trunk/Source/WebCore/html/parser/HTMLTokenTypes.h (140568 => 140569)


--- trunk/Source/WebCore/html/parser/HTMLTokenTypes.h	2013-01-23 20:11:56 UTC (rev 140568)
+++ trunk/Source/WebCore/html/parser/HTMLTokenTypes.h	2013-01-23 20:13:00 UTC (rev 140569)
@@ -42,17 +42,6 @@
         Character,
         EndOfFile,
     };
-
-    class DoctypeData : public DoctypeDataBase {
-        WTF_MAKE_NONCOPYABLE(DoctypeData);
-    public:
-        DoctypeData()
-            : m_forceQuirks(false)
-        {
-        }
-
-        bool m_forceQuirks;
-    };
 };
 
 }

Modified: trunk/Source/WebCore/xml/parser/MarkupTokenBase.h (140568 => 140569)


--- trunk/Source/WebCore/xml/parser/MarkupTokenBase.h	2013-01-23 20:11:56 UTC (rev 140568)
+++ trunk/Source/WebCore/xml/parser/MarkupTokenBase.h	2013-01-23 20:13:00 UTC (rev 140569)
@@ -45,21 +45,6 @@
     return 0;
 }
 
-class DoctypeDataBase {
-    WTF_MAKE_NONCOPYABLE(DoctypeDataBase); WTF_MAKE_FAST_ALLOCATED;
-public:
-    DoctypeDataBase()
-        : m_hasPublicIdentifier(false)
-        , m_hasSystemIdentifier(false)
-    {
-    }
-
-    bool m_hasPublicIdentifier;
-    bool m_hasSystemIdentifier;
-    WTF::Vector<UChar> m_publicIdentifier;
-    WTF::Vector<UChar> m_systemIdentifier;
-};
-
 class AttributeBase {
 public:
     class Range {
@@ -74,14 +59,13 @@
     WTF::Vector<UChar, 32> m_value;
 };
 
-template<typename TypeSet, typename DoctypeDataType = DoctypeDataBase, typename AttributeType = AttributeBase>
+template<typename TypeSet, typename AttributeType = AttributeBase>
 class MarkupTokenBase {
     WTF_MAKE_NONCOPYABLE(MarkupTokenBase);
     WTF_MAKE_FAST_ALLOCATED;
 public:
     typedef TypeSet Type;
     typedef AttributeType Attribute;
-    typedef DoctypeDataType DoctypeData;
 
     typedef WTF::Vector<Attribute, 10> AttributeList;
     typedef WTF::Vector<UChar, 1024> DataVector;
@@ -169,21 +153,6 @@
         m_type = TypeSet::Comment;
     }
 
-    void beginDOCTYPE()
-    {
-        ASSERT(m_type == TypeSet::Uninitialized);
-        m_type = TypeSet::DOCTYPE;
-        m_doctypeData = adoptPtr(new DoctypeData);
-    }
-
-    void beginDOCTYPE(UChar character)
-    {
-        ASSERT(character);
-        beginDOCTYPE();
-        m_data.append(character);
-        m_orAllData |= character;
-    }
-
     void appendToCharacter(char character)
     {
         ASSERT(m_type == TypeSet::Character);
@@ -331,50 +300,6 @@
         return (m_orAllData <= 0xff);
     }
 
-    // FIXME: Distinguish between a missing public identifer and an empty one.
-    const WTF::Vector<UChar>& publicIdentifier() const
-    {
-        ASSERT(m_type == TypeSet::DOCTYPE);
-        return m_doctypeData->m_publicIdentifier;
-    }
-
-    // FIXME: Distinguish between a missing system identifer and an empty one.
-    const WTF::Vector<UChar>& systemIdentifier() const
-    {
-        ASSERT(m_type == TypeSet::DOCTYPE);
-        return m_doctypeData->m_systemIdentifier;
-    }
-
-    void setPublicIdentifierToEmptyString()
-    {
-        ASSERT(m_type == TypeSet::DOCTYPE);
-        m_doctypeData->m_hasPublicIdentifier = true;
-        m_doctypeData->m_publicIdentifier.clear();
-    }
-
-    void setSystemIdentifierToEmptyString()
-    {
-        ASSERT(m_type == TypeSet::DOCTYPE);
-        m_doctypeData->m_hasSystemIdentifier = true;
-        m_doctypeData->m_systemIdentifier.clear();
-    }
-
-    void appendToPublicIdentifier(UChar character)
-    {
-        ASSERT(character);
-        ASSERT(m_type == TypeSet::DOCTYPE);
-        ASSERT(m_doctypeData->m_hasPublicIdentifier);
-        m_doctypeData->m_publicIdentifier.append(character);
-    }
-
-    void appendToSystemIdentifier(UChar character)
-    {
-        ASSERT(character);
-        ASSERT(m_type == TypeSet::DOCTYPE);
-        ASSERT(m_doctypeData->m_hasSystemIdentifier);
-        m_doctypeData->m_systemIdentifier.append(character);
-    }
-
     const DataVector& name() const
     {
         return m_data;
@@ -389,11 +314,6 @@
         return String(m_data.data(), m_data.size());
     }
 
-    PassOwnPtr<DoctypeData> releaseDoctypeData()
-    {
-        return m_doctypeData.release();
-    }
-
 protected:
 
 #ifndef NDEBUG
@@ -418,9 +338,6 @@
     DataVector m_data;
     UChar m_orAllData;
 
-    // For DOCTYPE
-    OwnPtr<DoctypeData> m_doctypeData;
-
     // For StartTag and EndTag
     bool m_selfClosing;
     AttributeList m_attributes;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to