RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
authortony@chromium.org <tony@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 20 Oct 2012 01:49:10 +0000 (01:49 +0000)
committertony@chromium.org <tony@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 20 Oct 2012 01:49:10 +0000 (01:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=97827

Reviewed by Ojan Vafai.

I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
border and padding), so just add an assert.

No new tests, the assert is for code clarity.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@131972 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderFlexibleBox.cpp

index 855783e..0178074 100644 (file)
@@ -1,5 +1,20 @@
 2012-10-19  Tony Chang  <tony@chromium.org>
 
+        RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
+        https://bugs.webkit.org/show_bug.cgi?id=97827
+
+        Reviewed by Ojan Vafai.
+
+        I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
+        border and padding), so just add an assert.
+
+        No new tests, the assert is for code clarity.
+
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
+
+2012-10-19  Tony Chang  <tony@chromium.org>
+
         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
         https://bugs.webkit.org/show_bug.cgi?id=99883
 
index baf7747..86e655e 100644 (file)
@@ -664,6 +664,7 @@ LayoutUnit RenderFlexibleBox::preferredMainAxisContentExtentForChild(RenderBox*
     Length flexBasis = flexBasisForChild(child);
     if (flexBasis.isAuto()) {
         LayoutUnit mainAxisExtent = hasOrthogonalFlow(child) ? child->logicalHeight() : child->maxPreferredLogicalWidth();
+        ASSERT(mainAxisExtent - mainAxisBorderAndPaddingExtentForChild(child) >= 0);
         return mainAxisExtent - mainAxisBorderAndPaddingExtentForChild(child);
     }
     return std::max(LayoutUnit(0), computeMainAxisExtentForChild(child, MainOrPreferredSize, flexBasis));