Diff
Modified: trunk/Source/WebCore/ChangeLog (139838 => 139839)
--- trunk/Source/WebCore/ChangeLog 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/ChangeLog 2013-01-16 07:36:55 UTC (rev 139839)
@@ -1,3 +1,32 @@
+2013-01-16 Ryosuke Niwa <[email protected]>
+
+ Get rid of Node::createRareData
+ https://bugs.webkit.org/show_bug.cgi?id=106981
+
+ Reviewed by Benjamin Poulain.
+
+ Deleted Node::createRareData. Node::ensureRareData() instantiates NodeRareData
+ or ElementRareData according to the node type. Also encapsulate new by create
+ functions in NodeRareData and ElementRareData.
+
+ * dom/Element.cpp:
+ (WebCore):
+ * dom/Element.h:
+ (Element):
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::create):
+ (ElementRareData):
+ (WebCore::ElementRareData::ElementRareData):
+ * dom/Node.cpp:
+ (WebCore::Node::ensureRareData):
+ (WebCore):
+ * dom/Node.h:
+ (WebCore::NodeRareDataBase::NodeRareDataBase):
+ * dom/NodeRareData.h:
+ (NodeRareData):
+ (WebCore::NodeRareData::create):
+ (WebCore::NodeRareData::NodeRareData):
+
2013-01-15 Ryosuke Niwa <[email protected]>
GTK+ and Qt build fix after r139833.
Modified: trunk/Source/WebCore/dom/Element.cpp (139838 => 139839)
--- trunk/Source/WebCore/dom/Element.cpp 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/dom/Element.cpp 2013-01-16 07:36:55 UTC (rev 139839)
@@ -223,11 +223,6 @@
return static_cast<ElementRareData*>(ensureRareData());
}
-PassOwnPtr<NodeRareData> Element::createRareData()
-{
- return adoptPtr(new ElementRareData());
-}
-
void Element::clearTabIndexExplicitlyIfNeeded()
{
if (hasRareData())
Modified: trunk/Source/WebCore/dom/Element.h (139838 => 139839)
--- trunk/Source/WebCore/dom/Element.h 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/dom/Element.h 2013-01-16 07:36:55 UTC (rev 139839)
@@ -580,7 +580,6 @@
virtual PassRefPtr<Element> cloneElementWithoutAttributesAndChildren();
QualifiedName m_tagName;
- virtual PassOwnPtr<NodeRareData> createRareData();
bool rareDataStyleAffectedByEmpty() const;
bool rareDataChildrenAffectedByHover() const;
bool rareDataChildrenAffectedByActive() const;
Modified: trunk/Source/WebCore/dom/ElementRareData.h (139838 => 139839)
--- trunk/Source/WebCore/dom/ElementRareData.h 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/dom/ElementRareData.h 2013-01-16 07:36:55 UTC (rev 139839)
@@ -35,7 +35,8 @@
class ElementRareData : public NodeRareData {
public:
- ElementRareData();
+ static PassOwnPtr<ElementRareData> create(RenderObject* renderer) { return adoptPtr(new ElementRareData(renderer)); }
+
~ElementRareData();
void setPseudoElement(PseudoId, PassRefPtr<PseudoElement>);
@@ -172,6 +173,7 @@
RefPtr<PseudoElement> m_generatedBefore;
RefPtr<PseudoElement> m_generatedAfter;
+ ElementRareData(RenderObject*);
void releasePseudoElement(PseudoElement*);
};
@@ -180,8 +182,9 @@
return IntSize(LayoutUnit::max(), LayoutUnit::max());
}
-inline ElementRareData::ElementRareData()
- : m_tabIndex(0)
+inline ElementRareData::ElementRareData(RenderObject* renderer)
+ : NodeRareData(renderer)
+ , m_tabIndex(0)
, m_childIndex(0)
, m_tabIndexWasSetExplicitly(false)
, m_needsFocusAppearanceUpdateSoonAfterAttach(false)
Modified: trunk/Source/WebCore/dom/Node.cpp (139838 => 139839)
--- trunk/Source/WebCore/dom/Node.cpp 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/dom/Node.cpp 2013-01-16 07:36:55 UTC (rev 139839)
@@ -452,19 +452,18 @@
if (hasRareData())
return rareData();
- NodeRareData* data = ""
+ NodeRareData* data;
+ if (isElementNode())
+ data = ""
+ else
+ data = ""
ASSERT(data);
- data->setRenderer(m_data.m_renderer);
+
m_data.m_rareData = data;
setFlag(HasRareDataFlag);
return data;
}
-PassOwnPtr<NodeRareData> Node::createRareData()
-{
- return adoptPtr(new NodeRareData());
-}
-
void Node::clearRareData()
{
ASSERT(hasRareData());
Modified: trunk/Source/WebCore/dom/Node.h (139838 => 139839)
--- trunk/Source/WebCore/dom/Node.h 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/dom/Node.h 2013-01-16 07:36:55 UTC (rev 139839)
@@ -116,7 +116,9 @@
void setRenderer(RenderObject* renderer) { m_renderer = renderer; }
protected:
- NodeRareDataBase() { }
+ NodeRareDataBase(RenderObject* renderer)
+ : m_renderer(renderer)
+ { }
private:
RenderObject* m_renderer;
@@ -785,8 +787,6 @@
virtual void refEventTarget();
virtual void derefEventTarget();
- virtual PassOwnPtr<NodeRareData> createRareData();
-
virtual RenderStyle* nonRendererStyle() const { return 0; }
virtual const AtomicString& virtualPrefix() const;
Modified: trunk/Source/WebCore/dom/NodeRareData.h (139838 => 139839)
--- trunk/Source/WebCore/dom/NodeRareData.h 2013-01-16 06:52:40 UTC (rev 139838)
+++ trunk/Source/WebCore/dom/NodeRareData.h 2013-01-16 07:36:55 UTC (rev 139839)
@@ -276,9 +276,8 @@
class NodeRareData : public NodeRareDataBase {
WTF_MAKE_NONCOPYABLE(NodeRareData); WTF_MAKE_FAST_ALLOCATED;
-public:
- NodeRareData()
- { }
+public:
+ static PassOwnPtr<NodeRareData> create(RenderObject* renderer) { return adoptPtr(new NodeRareData(renderer)); }
void clearNodeLists() { m_nodeLists.clear(); }
NodeListsNodeData* nodeLists() const { return m_nodeLists.get(); }
@@ -309,6 +308,11 @@
// This member function is intentionially not virtual to avoid adding a vtable pointer.
void reportMemoryUsage(MemoryObjectInfo*) const;
+protected:
+ NodeRareData(RenderObject* renderer)
+ : NodeRareDataBase(renderer)
+ { }
+
private:
OwnPtr<NodeListsNodeData> m_nodeLists;
OwnPtr<NodeMutationObserverData> m_mutationObserverData;