Changeset 167723 in webkit


Ignore:
Timestamp:
Apr 23, 2014 2:27:54 PM (10 years ago)
Author:
hyatt@apple.com
Message:

[New Multicolumn] Assertion failure in huge-column-count.html
https://bugs.webkit.org/show_bug.cgi?id=132071

Reviewed by Dean Jackson.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::regionAtBlockOffset):
Back out this change, since it wasn't general enough.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::getRegionRangeForBox):
The real issue was that this loop needed to consider the actual box
rather than starting from the parent. This was a non-issue for normal
regions (which cannot have nested flow threads), but for columns, you
have to consider the fact that the box could itself be a flow thread.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r167722 r167723  
     12014-04-23  David Hyatt  <hyatt@apple.com>
     2
     3        [New Multicolumn] Assertion failure in huge-column-count.html
     4        https://bugs.webkit.org/show_bug.cgi?id=132071
     5
     6        Reviewed by Dean Jackson.
     7
     8        * rendering/RenderBlock.cpp:
     9        (WebCore::RenderBlock::regionAtBlockOffset):
     10        Back out this change, since it wasn't general enough.
     11
     12        * rendering/RenderFlowThread.cpp:
     13        (WebCore::RenderFlowThread::getRegionRangeForBox):
     14        The real issue was that this loop needed to consider the actual box
     15        rather than starting from the parent. This was a non-issue for normal
     16        regions (which cannot have nested flow threads), but for columns, you
     17        have to consider the fact that the box could itself be a flow thread.
     18
    1192014-04-23  Andreas Kling  <akling@apple.com>
    220
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r167721 r167723  
    48294829RenderRegion* RenderBlock::regionAtBlockOffset(LayoutUnit blockOffset) const
    48304830{
    4831     if (isInFlowRenderFlowThread())
    4832         return 0;
    4833 
    48344831    RenderFlowThread* flowThread = flowThreadContainingBlock();
    48354832    if (!flowThread || !flowThread->hasValidRegionInfo())
  • trunk/Source/WebCore/rendering/RenderFlowThread.cpp

    r167721 r167723  
    772772    RenderBox* topMostUnsplittable = nullptr;
    773773    RenderBox* cb = const_cast<RenderBox*>(box);
    774     do {
     774    while (!cb->isRenderFlowThread()) {
    775775        if (cb->isUnsplittableForPagination())
    776776            topMostUnsplittable = cb;
     
    778778        cb = cb->parent()->enclosingBox();
    779779        ASSERT(cb);
    780     } while (!cb->isRenderFlowThread());
     780    }
    781781
    782782    if (topMostUnsplittable) {
Note: See TracChangeset for help on using the changeset viewer.