Title: [175475] trunk/Source/WebCore
Revision
175475
Author
[email protected]
Date
2014-11-03 10:39:08 -0800 (Mon, 03 Nov 2014)

Log Message

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:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (175474 => 175475)


--- trunk/Source/WebCore/ChangeLog	2014-11-03 18:38:44 UTC (rev 175474)
+++ trunk/Source/WebCore/ChangeLog	2014-11-03 18:39:08 UTC (rev 175475)
@@ -1,3 +1,23 @@
+2014-11-03  Andreas Kling  <[email protected]>
+
+        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-03  Tibor Meszaros  <[email protected]>
 
         [EFL] Fix the build if LOG_DISABLED=0 in release mode

Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp (175474 => 175475)


--- trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp	2014-11-03 18:38:44 UTC (rev 175474)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp	2014-11-03 18:39:08 UTC (rev 175475)
@@ -47,6 +47,11 @@
 
 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);
@@ -72,17 +77,6 @@
     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();

Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.h (175474 => 175475)


--- trunk/Source/WebCore/rendering/RenderLayerModelObject.h	2014-11-03 18:38:44 UTC (rev 175474)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.h	2014-11-03 18:39:08 UTC (rev 175475)
@@ -57,8 +57,6 @@
 
     void createLayer();
 
-    virtual void willBeDestroyed() override;
-
 private:
     std::unique_ptr<RenderLayer> m_layer;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to