Changeset 204951 in webkit


Ignore:
Timestamp:
Aug 24, 2016 6:55:04 PM (8 years ago)
Author:
Alan Bujtas
Message:

ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=155700
<rdar://problem/27720727>

Reviewed by David Hyatt.

Source/WebCore:

RenderBox::m_minPreferredLogicalWidth/m_maxPreferredLogicalWidth don't need special initial value since
preferredLogicalWidthsDirty flag guards them. -1 as initial value can cause problems for renderers that don't
override RenderBox::computePreferredLogicalWidths().

Test: fast/ruby/assert-when-content-size-is-negative.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::dirtyLineBoxes):
(WebCore::RenderBox::deleteLineBoxWrapper):

  • rendering/RenderBox.h:

LayoutTests:

  • fast/ruby/assert-when-content-size-is-negative-expected.txt: Added.
  • fast/ruby/assert-when-content-size-is-negative.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r204949 r204951  
     12016-08-24  Zalan Bujtas  <zalan@apple.com>
     2
     3        ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
     4        https://bugs.webkit.org/show_bug.cgi?id=155700
     5        <rdar://problem/27720727>
     6
     7        Reviewed by David Hyatt.
     8
     9        * fast/ruby/assert-when-content-size-is-negative-expected.txt: Added.
     10        * fast/ruby/assert-when-content-size-is-negative.html: Added.
     11
    1122016-08-24  Jiewen Tan  <jiewen_tan@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r204948 r204951  
     12016-08-24  Zalan Bujtas  <zalan@apple.com>
     2
     3        ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
     4        https://bugs.webkit.org/show_bug.cgi?id=155700
     5        <rdar://problem/27720727>
     6
     7        Reviewed by David Hyatt.
     8
     9        RenderBox::m_minPreferredLogicalWidth/m_maxPreferredLogicalWidth don't need special initial value since
     10        preferredLogicalWidthsDirty flag guards them. -1 as initial value can cause problems for renderers that don't
     11        override RenderBox::computePreferredLogicalWidths().   
     12
     13        Test: fast/ruby/assert-when-content-size-is-negative.html
     14
     15        * rendering/RenderBox.cpp:
     16        (WebCore::RenderBox::RenderBox):
     17        (WebCore::RenderBox::dirtyLineBoxes):
     18        (WebCore::RenderBox::deleteLineBoxWrapper):
     19        * rendering/RenderBox.h:
     20
    1212016-08-24  Alex Christensen  <achristensen@webkit.org>
    222
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r204400 r204951  
    145145RenderBox::RenderBox(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
    146146    : RenderBoxModelObject(element, WTFMove(style), baseTypeFlags)
    147     , m_minPreferredLogicalWidth(-1)
    148     , m_maxPreferredLogicalWidth(-1)
    149     , m_inlineBoxWrapper(nullptr)
    150147{
    151148    setIsBox();
     
    154151RenderBox::RenderBox(Document& document, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
    155152    : RenderBoxModelObject(document, WTFMove(style), baseTypeFlags)
    156     , m_minPreferredLogicalWidth(-1)
    157     , m_maxPreferredLogicalWidth(-1)
    158     , m_inlineBoxWrapper(nullptr)
    159153{
    160154    setIsBox();
     
    21492143void RenderBox::dirtyLineBoxes(bool fullLayout)
    21502144{
    2151     if (m_inlineBoxWrapper) {
    2152         if (fullLayout) {
    2153             delete m_inlineBoxWrapper;
    2154             m_inlineBoxWrapper = nullptr;
    2155         } else
    2156             m_inlineBoxWrapper->dirtyLineBoxes();
    2157     }
     2145    if (!m_inlineBoxWrapper)
     2146        return;
     2147   
     2148    if (fullLayout) {
     2149        delete m_inlineBoxWrapper;
     2150        m_inlineBoxWrapper = nullptr;
     2151    } else
     2152        m_inlineBoxWrapper->dirtyLineBoxes();
    21582153}
    21592154
     
    21912186void RenderBox::deleteLineBoxWrapper()
    21922187{
    2193     if (m_inlineBoxWrapper) {
    2194         if (!documentBeingDestroyed())
    2195             m_inlineBoxWrapper->removeFromParent();
    2196         delete m_inlineBoxWrapper;
    2197         m_inlineBoxWrapper = nullptr;
    2198     }
     2188    if (!m_inlineBoxWrapper)
     2189        return;
     2190   
     2191    if (!documentBeingDestroyed())
     2192        m_inlineBoxWrapper->removeFromParent();
     2193    delete m_inlineBoxWrapper;
     2194    m_inlineBoxWrapper = nullptr;
    21992195}
    22002196
  • trunk/Source/WebCore/rendering/RenderBox.h

    r204400 r204951  
    735735
    736736    // For inline replaced elements, the inline box that owns us.
    737     InlineElementBox* m_inlineBoxWrapper;
     737    InlineElementBox* m_inlineBoxWrapper { nullptr };
    738738
    739739    // Our overflow information.
Note: See TracChangeset for help on using the changeset viewer.