| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index 5070f5ae8f1587c0d99a59d398ff6fe9995a3652..10e45c19c4e889a386a45498d3f680bf88eb2222 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -122,6 +122,9 @@ struct SameSizeAsRenderObject {
|
| void* pointers[5];
|
| #if ENABLE(ASSERT)
|
| unsigned m_debugBitfields : 2;
|
| +#if ENABLE(OILPAN)
|
| + unsigned m_oilpanBitfields : 1;
|
| +#endif
|
| #endif
|
| unsigned m_bitfields;
|
| unsigned m_bitfields2;
|
| @@ -133,6 +136,7 @@ COMPILE_ASSERT(sizeof(RenderObject) == sizeof(SameSizeAsRenderObject), RenderObj
|
|
|
| bool RenderObject::s_affectsParentBlock = false;
|
|
|
| +#if !ENABLE(OILPAN)
|
| void* RenderObject::operator new(size_t sz)
|
| {
|
| ASSERT(isMainThread());
|
| @@ -144,6 +148,7 @@ void RenderObject::operator delete(void* ptr)
|
| ASSERT(isMainThread());
|
| partitionFree(ptr);
|
| }
|
| +#endif
|
|
|
| RenderObject* RenderObject::createObject(Element* element, RenderStyle* style)
|
| {
|
| @@ -215,12 +220,15 @@ RenderObject::RenderObject(Node* node)
|
| : ImageResourceClient()
|
| , m_style(nullptr)
|
| , m_node(node)
|
| - , m_parent(0)
|
| - , m_previous(0)
|
| - , m_next(0)
|
| + , m_parent(nullptr)
|
| + , m_previous(nullptr)
|
| + , m_next(nullptr)
|
| #if ENABLE(ASSERT)
|
| , m_hasAXObject(false)
|
| , m_setNeedsLayoutForbidden(false)
|
| +#if ENABLE(OILPAN)
|
| + , m_didCallDestroy(false)
|
| +#endif
|
| #endif
|
| , m_bitfields(node)
|
| {
|
| @@ -232,14 +240,24 @@ RenderObject::RenderObject(Node* node)
|
|
|
| RenderObject::~RenderObject()
|
| {
|
| - ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->removeRenderObject(this);
|
| ASSERT(!m_hasAXObject);
|
| +#if ENABLE(OILPAN)
|
| + ASSERT(m_didCallDestroy);
|
| +#endif
|
| #ifndef NDEBUG
|
| renderObjectCounter.decrement();
|
| #endif
|
| --s_instanceCount;
|
| }
|
|
|
| +void RenderObject::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_node);
|
| + visitor->trace(m_parent);
|
| + visitor->trace(m_previous);
|
| + visitor->trace(m_next);
|
| +}
|
| +
|
| String RenderObject::debugName() const
|
| {
|
| StringBuilder name;
|
| @@ -2804,6 +2822,10 @@ void RenderObject::destroyAndCleanupAnonymousWrappers()
|
|
|
| void RenderObject::destroy()
|
| {
|
| +#if ENABLE(ASSERT) && ENABLE(OILPAN)
|
| + ASSERT(!m_didCallDestroy);
|
| + m_didCallDestroy = true;
|
| +#endif
|
| willBeDestroyed();
|
| postDestroy();
|
| }
|
| @@ -2838,8 +2860,10 @@ void RenderObject::postDestroy()
|
|
|
| removeShapeImageClient(m_style->shapeOutside());
|
| }
|
| -
|
| + ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->removeRenderObject(this);
|
| +#if !ENABLE(OILPAN)
|
| delete this;
|
| +#endif
|
| }
|
|
|
| PositionWithAffinity RenderObject::positionForPoint(const LayoutPoint&)
|
|
|