Diff
Modified: trunk/Source/WebCore/ChangeLog (177750 => 177751)
--- trunk/Source/WebCore/ChangeLog 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/ChangeLog 2014-12-26 23:00:04 UTC (rev 177751)
@@ -1,3 +1,28 @@
+2014-12-26 Andreas Kling <[email protected]>
+
+ Purge PassRefPtr from Element and ElementRareData.
+ <https://webkit.org/b/139949>
+
+ Reviewed by Anders Carlsson.
+
+ Make functions that used to take PassRefPtr now take Ref&& or RefPtr&&
+ instead depending on possible nullity of incoming values.
+
+ * dom/Element.cpp:
+ (WebCore::Element::addShadowRoot):
+ (WebCore::Element::setBeforePseudoElement):
+ (WebCore::Element::setAfterPseudoElement):
+ * dom/Element.h:
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::setShadowRoot):
+ (WebCore::ElementRareData::setBeforePseudoElement):
+ (WebCore::ElementRareData::setAfterPseudoElement):
+ * dom/PseudoElement.h:
+ * dom/ShadowRoot.h:
+ * style/StyleResolveTree.cpp:
+ (WebCore::Style::setBeforeOrAfterPseudoElement):
+ (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
+
2014-12-26 Dan Bernstein <[email protected]>
<rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
Modified: trunk/Source/WebCore/dom/Element.cpp (177750 => 177751)
--- trunk/Source/WebCore/dom/Element.cpp 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/dom/Element.cpp 2014-12-26 23:00:04 UTC (rev 177751)
@@ -1457,24 +1457,24 @@
setNeedsNodeRenderingTraversalSlowPath(shouldUseNodeRenderingTraversalSlowPath(*this));
}
-void Element::addShadowRoot(PassRefPtr<ShadowRoot> newShadowRoot)
+void Element::addShadowRoot(Ref<ShadowRoot>&& newShadowRoot)
{
ASSERT(!shadowRoot());
- ShadowRoot* shadowRoot = newShadowRoot.get();
- ensureElementRareData().setShadowRoot(newShadowRoot);
+ ShadowRoot& shadowRoot = newShadowRoot.get();
+ ensureElementRareData().setShadowRoot(WTF::move(newShadowRoot));
- shadowRoot->setHostElement(this);
- shadowRoot->setParentTreeScope(&treeScope());
- shadowRoot->distributor().didShadowBoundaryChange(this);
+ shadowRoot.setHostElement(this);
+ shadowRoot.setParentTreeScope(&treeScope());
+ shadowRoot.distributor().didShadowBoundaryChange(this);
- ChildNodeInsertionNotifier(*this).notify(*shadowRoot);
+ ChildNodeInsertionNotifier(*this).notify(shadowRoot);
resetNeedsNodeRenderingTraversalSlowPath();
setNeedsStyleRecalc(ReconstructRenderTree);
- InspectorInstrumentation::didPushShadowRoot(this, shadowRoot);
+ InspectorInstrumentation::didPushShadowRoot(this, &shadowRoot);
}
void Element::removeShadowRoot()
@@ -2329,14 +2329,14 @@
return hasRareData() ? elementRareData()->afterPseudoElement() : 0;
}
-void Element::setBeforePseudoElement(PassRefPtr<PseudoElement> element)
+void Element::setBeforePseudoElement(Ref<PseudoElement>&& element)
{
- ensureElementRareData().setBeforePseudoElement(element);
+ ensureElementRareData().setBeforePseudoElement(WTF::move(element));
}
-void Element::setAfterPseudoElement(PassRefPtr<PseudoElement> element)
+void Element::setAfterPseudoElement(Ref<PseudoElement>&& element)
{
- ensureElementRareData().setAfterPseudoElement(element);
+ ensureElementRareData().setAfterPseudoElement(WTF::move(element));
}
static void disconnectPseudoElement(PseudoElement* pseudoElement)
Modified: trunk/Source/WebCore/dom/Element.h (177750 => 177751)
--- trunk/Source/WebCore/dom/Element.h 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/dom/Element.h 2014-12-26 23:00:04 UTC (rev 177751)
@@ -546,8 +546,8 @@
virtual void didDetachRenderers();
virtual RefPtr<RenderStyle> customStyleForRenderer(RenderStyle& parentStyle);
- void setBeforePseudoElement(PassRefPtr<PseudoElement>);
- void setAfterPseudoElement(PassRefPtr<PseudoElement>);
+ void setBeforePseudoElement(Ref<PseudoElement>&&);
+ void setAfterPseudoElement(Ref<PseudoElement>&&);
void clearBeforePseudoElement();
void clearAfterPseudoElement();
void resetComputedStyle();
@@ -635,7 +635,7 @@
virtual RefPtr<Node> cloneNodeInternal(Document&, CloningOperation) override;
virtual RefPtr<Element> cloneElementWithoutAttributesAndChildren(Document&);
- void addShadowRoot(PassRefPtr<ShadowRoot>);
+ void addShadowRoot(Ref<ShadowRoot>&&);
void removeShadowRoot();
bool rareDataStyleAffectedByEmpty() const;
Modified: trunk/Source/WebCore/dom/ElementRareData.h (177750 => 177751)
--- trunk/Source/WebCore/dom/ElementRareData.h 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/dom/ElementRareData.h 2014-12-26 23:00:04 UTC (rev 177751)
@@ -30,7 +30,6 @@
#include "RenderElement.h"
#include "ShadowRoot.h"
#include "StyleInheritedData.h"
-#include <wtf/OwnPtr.h>
namespace WebCore {
@@ -39,8 +38,8 @@
ElementRareData(Element&, RenderElement*);
~ElementRareData();
- void setBeforePseudoElement(PassRefPtr<PseudoElement>);
- void setAfterPseudoElement(PassRefPtr<PseudoElement>);
+ void setBeforePseudoElement(RefPtr<PseudoElement>&&);
+ void setAfterPseudoElement(RefPtr<PseudoElement>&&);
PseudoElement* beforePseudoElement() const { return m_beforePseudoElement.get(); }
PseudoElement* afterPseudoElement() const { return m_afterPseudoElement.get(); }
@@ -85,7 +84,7 @@
void clearShadowRoot() { m_shadowRoot = nullptr; }
ShadowRoot* shadowRoot() const { return m_shadowRoot.get(); }
- void setShadowRoot(PassRefPtr<ShadowRoot> shadowRoot) { m_shadowRoot = shadowRoot; }
+ void setShadowRoot(RefPtr<ShadowRoot>&& shadowRoot) { m_shadowRoot = WTF::move(shadowRoot); }
NamedNodeMap* attributeMap() const { return m_attributeMap.get(); }
void setAttributeMap(std::unique_ptr<NamedNodeMap> attributeMap) { m_attributeMap = WTF::move(attributeMap); }
@@ -189,16 +188,16 @@
ASSERT(!m_afterPseudoElement);
}
-inline void ElementRareData::setBeforePseudoElement(PassRefPtr<PseudoElement> pseudoElement)
+inline void ElementRareData::setBeforePseudoElement(RefPtr<PseudoElement>&& pseudoElement)
{
ASSERT(!m_beforePseudoElement || !pseudoElement);
- m_beforePseudoElement = pseudoElement;
+ m_beforePseudoElement = WTF::move(pseudoElement);
}
-inline void ElementRareData::setAfterPseudoElement(PassRefPtr<PseudoElement> pseudoElement)
+inline void ElementRareData::setAfterPseudoElement(RefPtr<PseudoElement>&& pseudoElement)
{
ASSERT(!m_afterPseudoElement || !pseudoElement);
- m_afterPseudoElement = pseudoElement;
+ m_afterPseudoElement = WTF::move(pseudoElement);
}
inline void ElementRareData::resetComputedStyle()
Modified: trunk/Source/WebCore/dom/PseudoElement.h (177750 => 177751)
--- trunk/Source/WebCore/dom/PseudoElement.h 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/dom/PseudoElement.h 2014-12-26 23:00:04 UTC (rev 177751)
@@ -36,9 +36,9 @@
class PseudoElement final : public Element {
public:
- static PassRefPtr<PseudoElement> create(Element& host, PseudoId pseudoId)
+ static Ref<PseudoElement> create(Element& host, PseudoId pseudoId)
{
- return adoptRef(new PseudoElement(host, pseudoId));
+ return adoptRef(*new PseudoElement(host, pseudoId));
}
virtual ~PseudoElement();
Modified: trunk/Source/WebCore/dom/ShadowRoot.h (177750 => 177751)
--- trunk/Source/WebCore/dom/ShadowRoot.h 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/dom/ShadowRoot.h 2014-12-26 23:00:04 UTC (rev 177751)
@@ -43,9 +43,9 @@
UserAgentShadowRoot = 0,
};
- static PassRefPtr<ShadowRoot> create(Document& document, ShadowRootType type)
+ static Ref<ShadowRoot> create(Document& document, ShadowRootType type)
{
- return adoptRef(new ShadowRoot(document, type));
+ return adoptRef(*new ShadowRoot(document, type));
}
virtual ~ShadowRoot();
Modified: trunk/Source/WebCore/style/StyleResolveTree.cpp (177750 => 177751)
--- trunk/Source/WebCore/style/StyleResolveTree.cpp 2014-12-26 22:16:30 UTC (rev 177750)
+++ trunk/Source/WebCore/style/StyleResolveTree.cpp 2014-12-26 23:00:04 UTC (rev 177751)
@@ -532,14 +532,14 @@
return current.afterPseudoElement();
}
-static void setBeforeOrAfterPseudoElement(Element& current, PassRefPtr<PseudoElement> pseudoElement, PseudoId pseudoId)
+static void setBeforeOrAfterPseudoElement(Element& current, Ref<PseudoElement>&& pseudoElement, PseudoId pseudoId)
{
ASSERT(pseudoId == BEFORE || pseudoId == AFTER);
if (pseudoId == BEFORE) {
- current.setBeforePseudoElement(pseudoElement);
+ current.setBeforePseudoElement(WTF::move(pseudoElement));
return;
}
- current.setAfterPseudoElement(pseudoElement);
+ current.setAfterPseudoElement(WTF::move(pseudoElement));
}
static void clearBeforeOrAfterPseudoElement(Element& current, PseudoId pseudoId)
@@ -592,9 +592,9 @@
{
if (!needsPseudoElement(current, pseudoId))
return;
- RefPtr<PseudoElement> pseudoElement = PseudoElement::create(current, pseudoId);
- setBeforeOrAfterPseudoElement(current, pseudoElement, pseudoId);
- attachRenderTree(*pseudoElement, *current.renderStyle(), renderTreePosition, nullptr);
+ Ref<PseudoElement> pseudoElement = PseudoElement::create(current, pseudoId);
+ setBeforeOrAfterPseudoElement(current, pseudoElement.copyRef(), pseudoId);
+ attachRenderTree(pseudoElement.get(), *current.renderStyle(), renderTreePosition, nullptr);
}
static void attachRenderTree(Element& current, RenderStyle& inheritedStyle, RenderTreePosition& renderTreePosition, PassRefPtr<RenderStyle> resolvedStyle)