| Index: Source/core/rendering/RenderWidget.cpp
|
| diff --git a/Source/core/rendering/RenderWidget.cpp b/Source/core/rendering/RenderWidget.cpp
|
| index 6ef116ab80bd2d1248136cc5520074c6add6c8bd..a6a92aa2690f14f5d1318cf8b5e9bd5a0765ddb6 100644
|
| --- a/Source/core/rendering/RenderWidget.cpp
|
| +++ b/Source/core/rendering/RenderWidget.cpp
|
| @@ -40,10 +40,12 @@ namespace blink {
|
|
|
| RenderWidget::RenderWidget(Element* element)
|
| : RenderReplaced(element)
|
| +#if !ENABLE(OILPAN)
|
| // Reference counting is used to prevent the widget from being
|
| // destroyed while inside the Widget code, which might not be
|
| // able to handle that.
|
| , m_refCount(1)
|
| +#endif
|
| {
|
| ASSERT(element);
|
| frameView()->addWidget(this);
|
| @@ -67,14 +69,25 @@ void RenderWidget::willBeDestroyed()
|
|
|
| void RenderWidget::destroy()
|
| {
|
| +#if ENABLE(ASSERT) && ENABLE(OILPAN)
|
| + m_didCallDestroy = true;
|
| +#endif
|
| willBeDestroyed();
|
| clearNode();
|
| +#if ENABLE(OILPAN)
|
| + // In Oilpan, postDestroy doesn't delete |this|. So calling it here is safe
|
| + // though |this| will be referred in FrameView.
|
| + postDestroy();
|
| +#else
|
| deref();
|
| +#endif
|
| }
|
|
|
| RenderWidget::~RenderWidget()
|
| {
|
| +#if !ENABLE(OILPAN)
|
| ASSERT(m_refCount <= 0);
|
| +#endif
|
| }
|
|
|
| Widget* RenderWidget::widget() const
|
| @@ -109,7 +122,7 @@ bool RenderWidget::setWidgetGeometry(const LayoutRect& frame)
|
| if (widget->frameRect() == newFrame)
|
| return false;
|
|
|
| - RefPtr<RenderWidget> protector(this);
|
| + RefPtrWillBeRawPtr<RenderWidget> protector(this);
|
| RefPtrWillBeRawPtr<Node> protectedNode(node());
|
| widget->setFrameRect(newFrame);
|
| return widget->frameRect().size() != newFrame.size();
|
| @@ -248,11 +261,13 @@ void RenderWidget::setIsOverlapped(bool isOverlapped)
|
| toFrameView(widget)->setIsOverlapped(isOverlapped);
|
| }
|
|
|
| +#if !ENABLE(OILPAN)
|
| void RenderWidget::deref()
|
| {
|
| if (--m_refCount <= 0)
|
| postDestroy();
|
| }
|
| +#endif
|
|
|
| void RenderWidget::updateOnWidgetChange()
|
| {
|
|
|