Index: Source/core/rendering/RenderObject.h |
diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h |
index ecfc9ad215db1c3d645c5bb1d9707fbb19dae604..06141c8ccdfd1dda46f8973c1dcf0f4b8a4c5866 100644 |
--- a/Source/core/rendering/RenderObject.h |
+++ b/Source/core/rendering/RenderObject.h |
@@ -145,7 +145,7 @@ const int showTreeCharacterOffset = 39; |
#endif |
// Base class for all rendering tree objects. |
-class RenderObject : public ImageResourceClient { |
+class RenderObject : public NoBaseWillBeGarbageCollectedFinalized<RenderObject>, public ImageResourceClient { |
friend class RenderBlock; |
friend class RenderBlockFlow; |
friend class RenderLayerReflectionInfo; // For setParent |
@@ -157,6 +157,7 @@ public: |
// marked as anonymous in the constructor. |
explicit RenderObject(Node*); |
virtual ~RenderObject(); |
+ virtual void trace(Visitor*); |
virtual const char* renderName() const = 0; |
@@ -343,9 +344,11 @@ public: |
static RenderObject* createObject(Element*, RenderStyle*); |
static unsigned instanceCount() { return s_instanceCount; } |
+#if !ENABLE(OILPAN) |
// RenderObjects are allocated out of the rendering partition. |
void* operator new(size_t); |
void operator delete(void*); |
+#endif |
public: |
bool isPseudoElement() const { return node() && node()->isPseudoElement(); } |
@@ -627,7 +630,7 @@ public: |
Node* node() const |
{ |
- return isAnonymous() ? 0 : m_node; |
+ return isAnonymous() ? 0 : m_node.get(); |
} |
Node* nonPseudoNode() const |
@@ -636,7 +639,7 @@ public: |
} |
// FIXME: Why does RenderWidget need this? |
- void clearNode() { m_node = 0; } |
+ void clearNode() { m_node = nullptr; } |
// Returns the styled node that caused the generation of this renderer. |
// This is the same as node() except for renderers of :before and :after |
@@ -1185,15 +1188,20 @@ private: |
RefPtr<RenderStyle> m_style; |
- Node* m_node; |
+ RawPtrWillBeMember<Node> m_node; |
- RenderObject* m_parent; |
- RenderObject* m_previous; |
- RenderObject* m_next; |
+ RawPtrWillBeMember<RenderObject> m_parent; |
+ RawPtrWillBeMember<RenderObject> m_previous; |
+ RawPtrWillBeMember<RenderObject> m_next; |
#if ENABLE(ASSERT) |
unsigned m_hasAXObject : 1; |
unsigned m_setNeedsLayoutForbidden : 1; |
+#if ENABLE(OILPAN) |
+protected: |
+ unsigned m_didCallDestroy : 1; |
+private: |
+#endif |
#endif |
#define ADD_BOOLEAN_BITFIELD(name, Name) \ |