Skip to content

Commit

Permalink
Merge r175475 - RenderLayerModelObject shouldn't need a pre-destructo…
Browse files Browse the repository at this point in the history
…r hook.

<https://webkit.org/b/138314>

Reviewed by Antti Koivisto.

Move code from the willBeDestroyed() pre-destructor hook to the regular
~RenderLayerModelObject() destructor.

We just need to unregister the renderer from the FrameView's set of
viewport-constrained objects. That doesn't require being able to walk
the render tree or call virtuals, which is the main reason you'd use
willBeDestroyed().

* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::~RenderLayerModelObject):
(WebCore::RenderLayerModelObject::willBeDestroyed): Deleted.
* rendering/RenderLayerModelObject.h:

Canonical link: https://commits.webkit.org/154760.182@webkitgtk/2.6
git-svn-id: https://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@175940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
Andreas Kling authored and carlosgcampos committed Nov 11, 2014
1 parent 45c365c commit 6e65862
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 13 deletions.
20 changes: 20 additions & 0 deletions Source/WebCore/ChangeLog
@@ -1,3 +1,23 @@
2014-11-03 Andreas Kling <akling@apple.com>

RenderLayerModelObject shouldn't need a pre-destructor hook.
<https://webkit.org/b/138314>

Reviewed by Antti Koivisto.

Move code from the willBeDestroyed() pre-destructor hook to the regular
~RenderLayerModelObject() destructor.

We just need to unregister the renderer from the FrameView's set of
viewport-constrained objects. That doesn't require being able to walk
the render tree or call virtuals, which is the main reason you'd use
willBeDestroyed().

* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::~RenderLayerModelObject):
(WebCore::RenderLayerModelObject::willBeDestroyed): Deleted.
* rendering/RenderLayerModelObject.h:

2014-11-02 Chris Dumez <cdumez@apple.com>

Reduce the cost of argumentCount checks in the JS bindings
Expand Down
16 changes: 5 additions & 11 deletions Source/WebCore/rendering/RenderLayerModelObject.cpp
Expand Up @@ -47,6 +47,11 @@ RenderLayerModelObject::RenderLayerModelObject(Document& document, PassRef<Rende

RenderLayerModelObject::~RenderLayerModelObject()
{
if (isPositioned()) {
if (style().hasViewportConstrainedPosition())
view().frameView().removeViewportConstrainedObject(this);
}

// Our layer should have been destroyed and cleared by now
ASSERT(!hasLayer());
ASSERT(!m_layer);
Expand All @@ -72,17 +77,6 @@ bool RenderLayerModelObject::hasSelfPaintingLayer() const
return m_layer && m_layer->isSelfPaintingLayer();
}

void RenderLayerModelObject::willBeDestroyed()
{
if (isPositioned()) {
if (style().hasViewportConstrainedPosition())
view().frameView().removeViewportConstrainedObject(this);
}

// RenderObject::willBeDestroyed calls back to destroyLayer() for layer destruction
RenderElement::willBeDestroyed();
}

void RenderLayerModelObject::styleWillChange(StyleDifference diff, const RenderStyle& newStyle)
{
s_wasFloating = isFloating();
Expand Down
2 changes: 0 additions & 2 deletions Source/WebCore/rendering/RenderLayerModelObject.h
Expand Up @@ -57,8 +57,6 @@ class RenderLayerModelObject : public RenderElement {

void createLayer();

virtual void willBeDestroyed() override;

private:
std::unique_ptr<RenderLayer> m_layer;

Expand Down

0 comments on commit 6e65862

Please sign in to comment.