Changeset 223139 in webkit


Ignore:
Timestamp:
Oct 10, 2017 1:36:48 PM (6 years ago)
Author:
Antti Koivisto
Message:

Layers should be destroyed by RenderLayerModelObject
https://bugs.webkit.org/show_bug.cgi?id=178139

Reviewed by Simon Fraser.

Clean up some FIXMEs.

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::willBeDestroyed):
(WebCore::RenderLayerModelObject::destroyLayer):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::willBeDestroyed):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r223135 r223139  
     12017-10-10  Antti Koivisto  <antti@apple.com>
     2
     3        Layers should be destroyed by RenderLayerModelObject
     4        https://bugs.webkit.org/show_bug.cgi?id=178139
     5
     6        Reviewed by Simon Fraser.
     7
     8        Clean up some FIXMEs.
     9
     10        * rendering/RenderLayerModelObject.cpp:
     11        (WebCore::RenderLayerModelObject::willBeDestroyed):
     12        (WebCore::RenderLayerModelObject::destroyLayer):
     13        * rendering/RenderLayerModelObject.h:
     14        * rendering/RenderObject.cpp:
     15        (WebCore::RenderObject::willBeDestroyed):
     16
    1172017-10-10  Chris Dumez  <cdumez@apple.com>
    218
  • trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp

    r220479 r223139  
    7070    }
    7171
     72    if (hasLayer()) {
     73        setHasLayer(false);
     74        destroyLayer();
     75    }
     76
    7277    RenderElement::willBeDestroyed();
    7378   
    7479    clearRepaintLayoutRects();
    75    
    76     // Our layer should have been destroyed and cleared by now
     80}
     81
     82void RenderLayerModelObject::destroyLayer()
     83{
    7784    ASSERT(!hasLayer());
    78     ASSERT(!m_layer);
    79 }
    80 
    81 void RenderLayerModelObject::destroyLayer()
    82 {
    83     ASSERT(!hasLayer()); // Callers should have already called setHasLayer(false)
    8485    ASSERT(m_layer);
    8586    if (m_layer->isSelfPaintingLayer())
  • trunk/Source/WebCore/rendering/RenderLayerModelObject.h

    r220479 r223139  
    4141    virtual ~RenderLayerModelObject();
    4242
    43     // Called by RenderObject::willBeDestroyed() and is the only way layers should ever be destroyed
    4443    void destroyLayer();
    4544
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r223131 r223139  
    14351435        cache->remove(this);
    14361436
    1437     // FIXME: Would like to do this in RenderBoxModelObject, but the timing is so complicated that this can't easily
    1438     // be moved into RenderLayerModelObject::willBeDestroyed().
    1439     // FIXME: Is this still true?
    1440     if (hasLayer()) {
    1441         setHasLayer(false);
    1442         downcast<RenderLayerModelObject>(*this).destroyLayer();
    1443     }
    1444 
    14451437    removeRareData();
    14461438}
Note: See TracChangeset for help on using the changeset viewer.