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;
};