Title: [158252] trunk/Source/WebCore
Revision
158252
Author
[email protected]
Date
2013-10-29 22:15:27 -0700 (Tue, 29 Oct 2013)

Log Message

Modernize DatasetDOMStringMap and ClassList a bit
https://bugs.webkit.org/show_bug.cgi?id=123491

Patch by Sam Weinig <[email protected]> on 2013-10-29
Reviewed by Andreas Kling.

* dom/DatasetDOMStringMap.cpp:
* dom/DatasetDOMStringMap.h:
* dom/Element.cpp:
* dom/ElementRareData.h:
* html/ClassList.cpp:
* html/ClassList.h:
Pass the owner Element by reference and store in a std::unique_ptr.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (158251 => 158252)


--- trunk/Source/WebCore/ChangeLog	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/ChangeLog	2013-10-30 05:15:27 UTC (rev 158252)
@@ -1,3 +1,18 @@
+2013-10-29  Sam Weinig  <[email protected]>
+
+        Modernize DatasetDOMStringMap and ClassList a bit
+        https://bugs.webkit.org/show_bug.cgi?id=123491
+
+        Reviewed by Andreas Kling.
+
+        * dom/DatasetDOMStringMap.cpp:
+        * dom/DatasetDOMStringMap.h:
+        * dom/Element.cpp:
+        * dom/ElementRareData.h:
+        * html/ClassList.cpp:
+        * html/ClassList.h:
+        Pass the owner Element by reference and store in a std::unique_ptr.
+
 2013-10-29  Brady Eidson  <[email protected]>
 
         Attempted build-fix after http://trac.webkit.org/changeset/158234

Modified: trunk/Source/WebCore/dom/DatasetDOMStringMap.cpp (158251 => 158252)


--- trunk/Source/WebCore/dom/DatasetDOMStringMap.cpp	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/dom/DatasetDOMStringMap.cpp	2013-10-30 05:15:27 UTC (rev 158252)
@@ -126,22 +126,22 @@
 
 void DatasetDOMStringMap::ref()
 {
-    m_element->ref();
+    m_element.ref();
 }
 
 void DatasetDOMStringMap::deref()
 {
-    m_element->deref();
+    m_element.deref();
 }
 
 void DatasetDOMStringMap::getNames(Vector<String>& names)
 {
-    if (!m_element->hasAttributes())
+    if (!m_element.hasAttributes())
         return;
 
-    unsigned length = m_element->attributeCount();
+    unsigned length = m_element.attributeCount();
     for (unsigned i = 0; i < length; i++) {
-        const Attribute& attribute = m_element->attributeAt(i);
+        const Attribute& attribute = m_element.attributeAt(i);
         if (isValidAttributeName(attribute.localName()))
             names.append(convertAttributeNameToPropertyName(attribute.localName()));
     }
@@ -149,12 +149,12 @@
 
 String DatasetDOMStringMap::item(const String& name)
 {
-    if (!m_element->hasAttributes())
+    if (!m_element.hasAttributes())
         return String();
 
-    unsigned length = m_element->attributeCount();
+    unsigned length = m_element.attributeCount();
     for (unsigned i = 0; i < length; i++) {
-        const Attribute& attribute = m_element->attributeAt(i);
+        const Attribute& attribute = m_element.attributeAt(i);
         if (propertyNameMatchesAttributeName(name, attribute.localName()))
             return attribute.value();
     }
@@ -164,12 +164,12 @@
 
 bool DatasetDOMStringMap::contains(const String& name)
 {
-    if (!m_element->hasAttributes())
+    if (!m_element.hasAttributes())
         return false;
 
-    unsigned length = m_element->attributeCount();
+    unsigned length = m_element.attributeCount();
     for (unsigned i = 0; i < length; i++) {
-        const Attribute& attribute = m_element->attributeAt(i);
+        const Attribute& attribute = m_element.attributeAt(i);
         if (propertyNameMatchesAttributeName(name, attribute.localName()))
             return true;
     }
@@ -184,7 +184,7 @@
         return;
     }
 
-    m_element->setAttribute(convertPropertyNameToAttributeName(name), value, ec);
+    m_element.setAttribute(convertPropertyNameToAttributeName(name), value, ec);
 }
 
 void DatasetDOMStringMap::deleteItem(const String& name, ExceptionCode& ec)
@@ -194,7 +194,7 @@
         return;
     }
 
-    m_element->removeAttribute(convertPropertyNameToAttributeName(name));
+    m_element.removeAttribute(convertPropertyNameToAttributeName(name));
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/dom/DatasetDOMStringMap.h (158251 => 158252)


--- trunk/Source/WebCore/dom/DatasetDOMStringMap.h	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/dom/DatasetDOMStringMap.h	2013-10-30 05:15:27 UTC (rev 158252)
@@ -27,17 +27,16 @@
 #define DatasetDOMStringMap_h
 
 #include "DOMStringMap.h"
-#include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
 
 class Element;
 
-class DatasetDOMStringMap : public DOMStringMap {
+class DatasetDOMStringMap FINAL : public DOMStringMap {
 public:
-    static PassOwnPtr<DatasetDOMStringMap> create(Element* element)
+    explicit DatasetDOMStringMap(Element& element)
+        : m_element(element)
     {
-        return adoptPtr(new DatasetDOMStringMap(element));
     }
 
     virtual void ref() OVERRIDE;
@@ -49,15 +48,10 @@
     virtual void setItem(const String& name, const String& value, ExceptionCode&) OVERRIDE;
     virtual void deleteItem(const String& name, ExceptionCode&) OVERRIDE;
 
-    virtual Element* element() OVERRIDE { return m_element; }
+    virtual Element* element() OVERRIDE { return &m_element; }
 
 private:
-    explicit DatasetDOMStringMap(Element* element)
-        : m_element(element)
-    {
-    }
-
-    Element* m_element;
+    Element& m_element;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/dom/Element.cpp (158251 => 158252)


--- trunk/Source/WebCore/dom/Element.cpp	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/dom/Element.cpp	2013-10-30 05:15:27 UTC (rev 158252)
@@ -2550,7 +2550,7 @@
 {
     ElementRareData& data = ""
     if (!data.classList())
-        data.setClassList(ClassList::create(this));
+        data.setClassList(std::make_unique<ClassList>(*this));
     return data.classList();
 }
 
@@ -2558,7 +2558,7 @@
 {
     ElementRareData& data = ""
     if (!data.dataset())
-        data.setDataset(DatasetDOMStringMap::create(this));
+        data.setDataset(std::make_unique<DatasetDOMStringMap>(*this));
     return data.dataset();
 }
 

Modified: trunk/Source/WebCore/dom/ElementRareData.h (158251 => 158252)


--- trunk/Source/WebCore/dom/ElementRareData.h	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/dom/ElementRareData.h	2013-10-30 05:15:27 UTC (rev 158252)
@@ -105,7 +105,7 @@
     void setComputedStyle(PassRef<RenderStyle> computedStyle) { m_computedStyle = std::move(computedStyle); }
 
     ClassList* classList() const { return m_classList.get(); }
-    void setClassList(OwnPtr<ClassList> classList) { m_classList = std::move(classList); }
+    void setClassList(std::unique_ptr<ClassList> classList) { m_classList = std::move(classList); }
     void clearClassListValueForQuirksMode()
     {
         if (!m_classList)
@@ -114,7 +114,7 @@
     }
 
     DatasetDOMStringMap* dataset() const { return m_dataset.get(); }
-    void setDataset(PassOwnPtr<DatasetDOMStringMap> dataset) { m_dataset = dataset; }
+    void setDataset(std::unique_ptr<DatasetDOMStringMap> dataset) { m_dataset = std::move(dataset); }
 
     LayoutSize minimumSizeForResizing() const { return m_minimumSizeForResizing; }
     void setMinimumSizeForResizing(LayoutSize size) { m_minimumSizeForResizing = size; }
@@ -159,8 +159,8 @@
     IntSize m_savedLayerScrollOffset;
     RefPtr<RenderStyle> m_computedStyle;
 
-    OwnPtr<DatasetDOMStringMap> m_dataset;
-    OwnPtr<ClassList> m_classList;
+    std::unique_ptr<DatasetDOMStringMap> m_dataset;
+    std::unique_ptr<ClassList> m_classList;
     RefPtr<ShadowRoot> m_shadowRoot;
     OwnPtr<NamedNodeMap> m_attributeMap;
 

Modified: trunk/Source/WebCore/html/ClassList.cpp (158251 => 158252)


--- trunk/Source/WebCore/html/ClassList.cpp	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/html/ClassList.cpp	2013-10-30 05:15:27 UTC (rev 158252)
@@ -32,24 +32,19 @@
 
 namespace WebCore {
 
-OwnPtr<ClassList> ClassList::create(Element* element)
-{
-    return adoptPtr(new ClassList(element));
-}
-
 void ClassList::ref()
 {
-    m_element->ref();
+    m_element.ref();
 }
 
 void ClassList::deref()
 {
-    m_element->deref();
+    m_element.deref();
 }
 
 unsigned ClassList::length() const
 {
-    return m_element->hasClass() ? classNames().size() : 0;
+    return m_element.hasClass() ? classNames().size() : 0;
 }
 
 const AtomicString ClassList::item(unsigned index) const
@@ -61,33 +56,33 @@
 
 Element* ClassList::element() const
 {
-    return m_element;
+    return &m_element;
 }
 
 bool ClassList::containsInternal(const AtomicString& token) const
 {
-    return m_element->hasClass() && classNames().contains(token);
+    return m_element.hasClass() && classNames().contains(token);
 }
 
 AtomicString ClassList::value() const
 {
-    return m_element->getAttribute(HTMLNames::classAttr);
+    return m_element.getAttribute(HTMLNames::classAttr);
 }
 
 void ClassList::setValue(const AtomicString& value)
 {
-    m_element->setAttribute(HTMLNames::classAttr, value);
+    m_element.setAttribute(HTMLNames::classAttr, value);
 }
 
 const SpaceSplitString& ClassList::classNames() const
 {
-    ASSERT(m_element->hasClass());
-    if (m_element->document().inQuirksMode()) {
+    ASSERT(m_element.hasClass());
+    if (m_element.document().inQuirksMode()) {
         if (m_classNamesForQuirksMode.isEmpty())
             m_classNamesForQuirksMode.set(value(), false);
         return m_classNamesForQuirksMode;
     }
-    return m_element->elementData()->classNames();
+    return m_element.elementData()->classNames();
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/html/ClassList.h (158251 => 158252)


--- trunk/Source/WebCore/html/ClassList.h	2013-10-30 04:34:30 UTC (rev 158251)
+++ trunk/Source/WebCore/html/ClassList.h	2013-10-30 05:15:27 UTC (rev 158252)
@@ -33,33 +33,31 @@
 
 class Element;
 
-class ClassList : public DOMTokenList {
+class ClassList FINAL : public DOMTokenList {
 public:
-    static OwnPtr<ClassList> create(Element*);
+    ClassList(Element& element)
+        : m_element(element)
+    {
+    }
 
-    virtual void ref() OVERRIDE FINAL;
-    virtual void deref() OVERRIDE FINAL;
+    virtual void ref() OVERRIDE;
+    virtual void deref() OVERRIDE;
 
-    virtual unsigned length() const OVERRIDE FINAL;
-    virtual const AtomicString item(unsigned index) const OVERRIDE FINAL;
+    virtual unsigned length() const OVERRIDE;
+    virtual const AtomicString item(unsigned index) const OVERRIDE;
 
-    virtual Element* element() const OVERRIDE FINAL;
+    virtual Element* element() const OVERRIDE;
 
     void clearValueForQuirksMode() { m_classNamesForQuirksMode.clear(); }
 
 private:
-    ClassList(Element* element)
-        : m_element(element)
-    {
-    }
+    virtual bool containsInternal(const AtomicString&) const OVERRIDE;
+    virtual AtomicString value() const OVERRIDE;
+    virtual void setValue(const AtomicString&) OVERRIDE;
 
-    virtual bool containsInternal(const AtomicString&) const OVERRIDE FINAL;
-    virtual AtomicString value() const OVERRIDE FINAL;
-    virtual void setValue(const AtomicString&) OVERRIDE FINAL;
-
     const SpaceSplitString& classNames() const;
 
-    Element* m_element;
+    Element& m_element;
     mutable SpaceSplitString m_classNamesForQuirksMode;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to