Skip to content
  • ojan@chromium.org's avatar
    Fix access to m_markupBox in WebCore::EllipsisBox::paint · bc5ca6e2
    ojan@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=91138
    
    Reviewed by Abhishek Arya.
    
    Source/WebCore:
    
    EllipsisBox would hold on to m_markupBox, which would then get destroyed during
    the followup layoutIfNeeded in layoutVerticalBox. Instead, have EllipsisBox
    dynamically grab to pointer to the markup box during paint since there's no
    straightforward way to notify the EllipsisBox that the markupBox has been destroyed
    and/or point it at the new markupBox.
    
    Test: fast/overflow/line-clamp-and-columns.html
    
    * rendering/EllipsisBox.cpp:
    (WebCore::EllipsisBox::paint):
    (WebCore):
    (WebCore::EllipsisBox::paintMarkupBox):
    * rendering/EllipsisBox.h:
    (WebCore::EllipsisBox::EllipsisBox):
    Just store a boolean that we have a markup box that needs painting.
    * rendering/RenderDeprecatedFlexibleBox.cpp:
    (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
    Clearing the override size right after setting it was incorrect because
    there are cases where we'll do a followup layout in layoutVerticalBox, at which
    point we'll still need the override size.
    (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
    Clear the override size here to handle cases where line clamp is removed since
    we don't call applyLineClamp in those cases.
    
    LayoutTests:
    
    * fast/overflow/line-clamp-and-columns-expected.html: Added.
    * fast/overflow/line-clamp-and-columns.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    bc5ca6e2