Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1699)

Unified Diff: Source/core/rendering/RenderObject.h

Issue 423093002: Oilpan: Prepare to move RenderObject and RenderObjectChildList to Oilpan heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: dispose -> destroy Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderMenuList.cpp ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) \
« no previous file with comments | « Source/core/rendering/RenderMenuList.cpp ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698