Changeset 142815 in webkit


Ignore:
Timestamp:
Feb 13, 2013 3:43:01 PM (11 years ago)
Author:
shawnsingh@chromium.org
Message:

Fix debug assertion being triggered because we may access dirty normalFlowList.
https://bugs.webkit.org/show_bug.cgi?id=109740

A debug assertion in RenderLayer.h is being hit when trying to
access the normalFlowList when it is dirty. This is caused by a
new recursion that I added in RenderLayerBacking::hasVisibleNonCompositingDescendant(),
but I overlooked the need to call updateLayerListsIfNeeded()
recursively as well.

Reviewed by Simon Fraser.

No test, because there's no reliable way to test this (same as bug 85512).

  • rendering/RenderLayerBacking.cpp:

(WebCore::hasVisibleNonCompositingDescendant):
(WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r142811 r142815  
     12013-02-13  Shawn Singh  <shawnsingh@chromium.org>
     2
     3        Fix debug assertion being triggered because we may access dirty normalFlowList.
     4        https://bugs.webkit.org/show_bug.cgi?id=109740
     5
     6        A debug assertion in RenderLayer.h is being hit when trying to
     7        access the normalFlowList when it is dirty.  This is caused by a
     8        new recursion that I added in RenderLayerBacking::hasVisibleNonCompositingDescendant(),
     9        but I overlooked the need to call updateLayerListsIfNeeded()
     10        recursively as well.
     11
     12        Reviewed by Simon Fraser.
     13
     14        No test, because there's no reliable way to test this (same as bug 85512).
     15
     16        * rendering/RenderLayerBacking.cpp:
     17        (WebCore::hasVisibleNonCompositingDescendant):
     18        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
     19
    1202013-02-13  Antti Koivisto  <antti@apple.com>
    221
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r142140 r142815  
    14321432static bool hasVisibleNonCompositingDescendant(RenderLayer* parent)
    14331433{
     1434    // FIXME: We shouldn't be called with a stale z-order lists. See bug 85512.
     1435    parent->updateLayerListsIfNeeded();
     1436
     1437#if !ASSERT_DISABLED
     1438    LayerListMutationDetector mutationChecker(parent);
     1439#endif
     1440
    14341441    if (Vector<RenderLayer*>* normalFlowList = parent->normalFlowList()) {
    14351442        size_t listSize = normalFlowList->size();
     
    14741481bool RenderLayerBacking::hasVisibleNonCompositingDescendantLayers() const
    14751482{
    1476     // FIXME: We shouldn't be called with a stale z-order lists. See bug 85512.
    1477     m_owningLayer->updateLayerListsIfNeeded();
    1478 
    1479 #if !ASSERT_DISABLED
    1480     LayerListMutationDetector mutationChecker(m_owningLayer);
    1481 #endif
    1482 
    14831483    return hasVisibleNonCompositingDescendant(m_owningLayer);
    14841484}
Note: See TracChangeset for help on using the changeset viewer.