Bug 23524 - REGRESSION (r40142): Flickr photo pages don't fully display
Summary: REGRESSION (r40142): Flickr photo pages don't fully display
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tables (show other bugs)
Version: 528+ (Nightly build)
Hardware: Macintosh OS X 10.5
: P1 Normal
Assignee: Dave Hyatt
URL: http://flickr.com/photos/noladishu/32...
Keywords: HasReduction, InRadar, Regression
: 23517 23529 23530 23531 23532 23533 23534 23540 23541 23542 23543 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-01-24 19:44 PST by Matt Lilek
Modified: 2015-03-30 18:05 PDT (History)
13 users (show)

See Also:


Attachments
Reduction (281 bytes, text/html)
2009-01-24 23:59 PST, Matt Lilek
no flags Details
Patch including layout test and changelog (42.85 KB, patch)
2009-01-25 18:38 PST, Dave Hyatt
oliver: review+
Details | Formatted Diff | Diff
Patch that fixes a couple of problems exposed by the ASSERT! (44.26 KB, patch)
2009-01-25 19:21 PST, Dave Hyatt
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Lilek 2009-01-24 19:44:03 PST
Go to any individual photo page on Flickr (ie: <http://flickr.com/photos/noladishu/3219543601/>) - most of the page doesn't display aside from the header, footer and next/previous thumbnails.

Works fine in r40102 nightly, but broken in r40220 local debug build.
Comment 1 Mark Rowe (bdash) 2009-01-24 20:12:56 PST
Any chance that you'd be able to bisect through that range to find out when this broke?
Comment 2 Mark Rowe (bdash) 2009-01-24 20:13:54 PST
<rdar://problem/6525386>
Comment 3 Mark Rowe (bdash) 2009-01-24 20:19:29 PST
This is almost certainly a regression from Hyatt's recent changes to the render tree.
Comment 4 Matt Lilek 2009-01-24 23:58:40 PST
Regressed in <http://trac.webkit.org/changeset/40142>, but that revision is broken and needs the fix from <http://trac.webkit.org/changeset/40150> to compile.
Comment 5 Matt Lilek 2009-01-24 23:59:28 PST
Created attachment 27010 [details]
Reduction
Comment 6 Simon Hollingshead 2009-01-25 07:17:23 PST
I'm seeing this bug on Invision Power Board Forums: ( http://forums.invisionpower.com/ for example ) - Just view any topic and varying numbers of posts won't be there.
Comment 7 Patrik Weiskircher 2009-01-25 15:24:50 PST
I'm also seeing this on <http://www.bmw-boerse.at/boerse/detail.jsp?vehicle=796883>.

Normally, the above mentioned URL should show photos of the car in the center-column of the page and some information about the car in a column at the right side. Using webkit nightly build 40220 the photos and information text do not appear and its just white.

After reloading I sometimes did get a flicker of the photos or the complete information text on the right side.

It worked perfectly in build 40102 I had installed previously.
Comment 8 Mark Rowe (bdash) 2009-01-25 18:01:09 PST
*** Bug 23540 has been marked as a duplicate of this bug. ***
Comment 9 Mark Rowe (bdash) 2009-01-25 18:02:18 PST
*** Bug 23529 has been marked as a duplicate of this bug. ***
Comment 10 Mark Rowe (bdash) 2009-01-25 18:02:24 PST
*** Bug 23530 has been marked as a duplicate of this bug. ***
Comment 11 Mark Rowe (bdash) 2009-01-25 18:02:31 PST
*** Bug 23531 has been marked as a duplicate of this bug. ***
Comment 12 Mark Rowe (bdash) 2009-01-25 18:02:38 PST
*** Bug 23532 has been marked as a duplicate of this bug. ***
Comment 13 Mark Rowe (bdash) 2009-01-25 18:02:43 PST
*** Bug 23533 has been marked as a duplicate of this bug. ***
Comment 14 Mark Rowe (bdash) 2009-01-25 18:02:48 PST
*** Bug 23534 has been marked as a duplicate of this bug. ***
Comment 15 Dave Hyatt 2009-01-25 18:38:25 PST
Created attachment 27033 [details]
Patch including layout test and changelog
Comment 16 Oliver Hunt 2009-01-25 18:49:04 PST
Comment on attachment 27033 [details]
Patch including layout test and changelog

r=me
Comment 17 Dave Hyatt 2009-01-25 19:21:25 PST
Created attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!
Comment 18 Oliver Hunt 2009-01-25 19:35:53 PST
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

r=me
Comment 19 Dave Hyatt 2009-01-25 19:39:13 PST
Fixed in r40238.

Comment 20 Mark Rowe (bdash) 2009-01-25 21:00:31 PST
*** Bug 23541 has been marked as a duplicate of this bug. ***
Comment 21 Mark Rowe (bdash) 2009-01-26 11:14:11 PST
*** Bug 23543 has been marked as a duplicate of this bug. ***
Comment 22 Mark Rowe (bdash) 2009-01-26 11:14:53 PST
*** Bug 23542 has been marked as a duplicate of this bug. ***
Comment 23 Ismail Donmez 2009-01-26 11:25:06 PST
*** Bug 23517 has been marked as a duplicate of this bug. ***
Comment 24 sscanner 2015-03-30 17:46:03 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 25 sscanner 2015-03-30 17:46:04 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

"><qss>
Comment 26 sscanner 2015-03-30 17:46:04 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 27 sscanner 2015-03-30 17:46:05 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 28 sscanner 2015-03-30 17:46:11 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 29 sscanner 2015-03-30 17:47:26 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 30 sscanner 2015-03-30 17:47:27 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 31 sscanner 2015-03-30 17:48:59 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAADO2lDQ1BJQ0MgUHJvZmlsZQAAeAGF
>lEto1FAUhv+MKYK0gqi1FpTgQou0JT7QilDbabXWkXEY+9AiyDRzZxpNMzGZGR+ISEHc+VqKGx+I
>iyriQrpQcKULkULra1EEcaUiiEI3Usb/Ju1MKlYvJPlyzn/P64YAVQ9TjmNFNGDYzrvJrqh26PCA
>tngCVahBNbhShue0JxL7faZWPuev6bdQpGWyScaK9R2Y+LRt9f1Lj2Lv6572+p75+nlvNS4TAopG
>64pswFslDwa8V/LJvJOn5ohkYyiVJjvkRrcn2UG+QV6aDfFgiNPCM4CqNmpyhuMyTmQFuaVoZGXM
>UbJup02bPCXtac8Ypob9Rn7IWdDGlY8BrWuARS8rtgEPGL0LrFpfsTXUASv7gbEtFdvPpD8fpXbc
>y2zZ7IdTqqOs6UOp9HM9sPgaMHO1VPp1q1Sauc0crOOZZRTcoq9lYcorIKg32M34yTlaiIOefFUL
>cJNz7F8CxC4A1z8CGx4Ayx8DiRqgZwci59lucOXFKc4F6Mg5p10zO5TXNuv6dq2dRyu0bttobtRS
>lqX5Lk9zhSfcokg3Y9gqcM7+WsZ7tbB7D/LJ/iLnhLd7lpWRdKqTs0Qz2/qSFp27yY3kexlzTze5
>gddUxt3TG7Cy0cx39wQc6bOtOM9FaiJ19mD8AJnxFdXJR+U8JI94xYMypm8/ltqXINfTnjyei0lN
>Lfe2nRnq4RlJVqwzQx3xWX7tFpIy7zpq7jiW/82ztshzHIYFARM27zY0JNGFKJrgwEUOGXpMKkxa
>pV/QasLD8b8qLSTKuywquvCZez77e06gwN0yfh+icYw0liNo+jv9m/5Gv6nf0b9eqS80VDwj7lHT
>GL/8nXFlZlmNjBvUKOPLmoL4Bqttp9dCltZhXkFPXlnfFK4uY1+pL3s0mUNcjE+HuhShTE0YZDzZ
>tey+SLb4Jvx8c9kWmh61L84+qavkeqOOHZmsfnE2XA1r/7OrYNKyq/DkjZAuPGuhrlU3qd1qi7oD
>mrpLbVNb1U6+7VT3l3f0clYmTrJul9Wn2ION0/RWTroyWwT/Fn4x/C91CVu4pqHJf2jCzWVMS/iO
>4PYfd0j5L/wNAYUVDXxLOzsAACAASURBVHgB7d15kyVXeSfgrOpu7SuSECAktCHEgNiXARuDAwg7
>Zgn+lL/NeL6N51/HTAQje4wdIMRmAWITkqwdrWhptLa6q2ryl7dPd3bq3jy3uo5KpeY50dV3O/nm
>ySe38+Zy78add9650ykECBAgQIAAAQIECBDYB4HNfRiHURAgQIAAAQIECBAgQGAQkIBYEAgQIECA
>AAECBAgQ2DcBCci+URsRAQIECBAgQIAAAQISEMsAAQIECBAgQIAAAQL7JiAB2TdqIyJAgAABAgQI
>ECBAQAJiGSBAgAABAgQIECBAYN8EJCD7Rm1EBAgQIECAAAECBAhIQCwDBAgQIECAAAECBAjsm4AE
>ZN+ojYgAAQIECBAgQIAAAQmIZYAAAQIECBAgQIAAgX0TkIDsG7URESBAgAABAgQIECAgAbEMECBA
>gAABAgQIECCwbwISkH2jNiICBAgQIECAAAECBCQglgECBAgQIECAAAECBPZNQAKyb9RGRIAAAQIE
>CBAgQICABMQyQIAAAQIECBAgQIDAvglIQPaN2ogIECBAgAABAgQIEHjPJCDHjh3rXnnllffkHHvj
>jTe6Z599tss0KAQOosCJEye611577SA27azbdPz48e71118/6+HfjQFrbd7a2ur++Mc/vhtNq45z
>v7fR29vb3Z/+9Kdqu97JCu+15Wu3Fnudp3sdfrftrdWvrV+14Q/S561s97JNmQ7bqk0HyXm3bXkn
>+ntT5+nr3bbxoNQ/9MlPfvLv5xrzxBNPdD/4wQ+6n//8593zzz/fPffcc91jjz3WPfroo93555/f
>XXLJJXODN/vsl7/8ZXf//fd3t956a7OY+xHogQceGBKnJE8//vGPu49+9KPd5uZ7Ju+bJdrZ2ek2
>Nja6PL722k7fMdru+n5sd8EF3RmvL7xwYzbO9MMTJ3b6ZW2ne+qp7SHWeeftbvhpvHVfv/LKdvfM
>M9td38frLrpo+TiPHt3uXn11p7vwwm6Y9nHsY8d2upde2uk7vYu/t95KvdNx1olf4pVYF198evh8
>9oc//KH76U9/OvxlQ3fdddeVQc54/NnPftZ9//vf77L+XtDPkMsvv/yMz8cvnnzyye5f/uVf+une
>6j74wQ+OP3rPPs90Z5qOHDnSXXPNNe+J6Xj44Ye7733ve/0yc2F39dVXv63NL7744rAtTr3bb7/9
>bZ+/22/s5zb6pZdeGpbvHNi56aab3pVJT/Jz1113dR//+MfflfHvx0j3Ok/3OnzLaXwvbhPmpr+F
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 32 sscanner 2015-03-30 17:48:59 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
"'><qss>
Comment 33 sscanner 2015-03-30 17:48:59 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJHD4ySef7DY3N7uNjY3hr8TN652dnfKy
>297e7ra2tk69l88VAgQIECBAgAABAgT2X6D0xUsfvrxOS8Z9+NLPL++lXnm+rNW1z48dO9adf/75
>ywYd3ls2fBlfHpNTHM6TCy+88NQA42j57M033+xeevn17qVXN7qjr212rx/b7BORnDg5mZwkSTn/
>8HgwzwkQIECAAAECBAgQaC2QfndK/3B4c7u76Mh2d+UlXXfNlYe6iy48dOpkwjgJOHHixHASIf39
>8847bzH86P9x3fT983qu5ITEBRdcMFdlSHDGcRK3lFdffbU7nIZcfPHFbxtZspOXXnqpe+qZV7pn
>jh7uXj1xfrd56FB31bXndZddfKQ7fKg0bqfrz58sMqnS4FMXdvV1NjLC/vP+//5ES9dtJyuLWz+B
>ebP/S6ShYYbvJfrCb+GQJcPy01tYf2w/bD/tP/pNgf2n/oP+0591/7Hb7s8eZIfYl63+ySuvn+j+
>+NKx7k8vbnUv989vuGane98VR7pDfX89JX3r0vHP42uvvTZc9XTZZZe9rd8/DLDmf2+99daQO6xZ
>/YxqaUeGP5wsJhlKTs+UkveSnTz73Evd00fP617b7s+QnLfZXX31Bd37L+8nbLOvfzL/WCQTZch+
>J3ny/byTfOLM7Kd0pdKhCspiuIKZV4ZfmOR/fpYf68/pDUq2F4tUzPbD9tP+w/5zsa/UfzjdZ9B/
>Om1xrvaftvqDEMOx2f4hXeiLLjrcHTrvUPf08290R49vdo8/f6y78ILN7pKLDw39+nECcvjw4eHS
>p6NHj3Z5npMP477/ab36s+QJZztsuaXj0PXXX//3F1100alAaWwuu3rhhRe6p17c7o6euLRPPg51
>R/q/Ky450l3YP6Zk4zf8nWznYJK+Qt4/1WdYPMmCUDaWi2EW3YgM2p9oGYrhFwkHP8uP9WexTRi2
>sv1T2w/bT/uPxTph/9mvCycPQ0RE/2GxXOg//fn0n5JwD9uBk4/b/Yut/u+1Y9vddr+zPNYnIYd2
>jndXXtYnJv1ZkJIk5GBm/tLHz+VY+csVUElExgc6F0vU4v8kGblP/PLLLx+/PTx/5ZVXuksu6a/7
>mpTHH398eL+Md/Lx8DJxcyZmuHkjDUkjUvL8+PHjQxLy2omLuu7IZnckf4c3u2Mnuu6tEzvDGZCN
>/oTJkF70CANIP2w6Tuks5DRxP6nD81xBUyYuR+1Sqf9/KNt53mP0/4b3DM/P8mP9sf2w/bT/sP/M
>vkD/Qf9J/3Hoafd95EX/OZddLTrffV+hf5qX6ZsfOZx6m93xvkP94hsb3U19dp4k4JRfOtp9SV8/
>iUn6+SUROXLkyKl6Q6X+v2effbZLMpGbzT/ykY+Ut089pu9eYp96s3/yxBNPdM8991x3ww03dNde
>e+34o+F5SYDy4nAaUpKOBEujUvJ4bPOCRfLRJyDn9QnIiT6xeOHVjDR/Q7Xhv0xWpm3YYPTPN/vz
>gEkzUmV4r/8vj6kzJBz5dGd7eH0qeTE8v34ZyTJj+bH+2H7Yftp/2H/qP2QZ0H/Sfzzdfz6+lR73
>ouz0SUb61dt9fzonCoaMvX/jjRNHhkutUqskIbnsqSQNJQEp/f8sY3meujmz8fDDDw+PJ0dzKlZ5
>XR4Tc1lJ0vLggw92zzzzTHfzzTd3l17aX0nVl9QvSU/Gd7g0Lm+mEXldGrXZX22ViUrycd6RQ8P7
>G31ysdmf/sjOoWQV2VXmNFAWktybnjpl55FquS4xscO202ccSTr6mgu4/oXh+Vl+rD+2H7af9h/2
>n/oP+k/6j4vudXrK0/7zRn8VUvrTfWe670unH90/buWG9H6Y4VsqchZkcZC/9O+HOH3fPglI3ksZ
>38NRkoIXX3yxe+ihh4bPx/8loZiW3ES+7P3ELeXll1/u7r333u7WW2/t3ve+9w3jz2cl1xgSkDSo
>/JUG5vUFm8f6b746vz9ls9n/9dnKocP960XdTP9Q+mRikUD0p3v6N/NXPsvzfLo4op1n/V//3yIB
>WbxeZGXpgBuen+XH+mP7Yfu52LXYf9h/6j/oP+k/LhLS0n/eODQ8GzrT6T9vb290W/1OY3P7xKJ/
>3Xewjxw+3vfDF2c00pdPvz6JwZC4LDavw6VY+ay8lzpXX3318Nsejz322HCPxsmqw8mH8rw8Ztic
>rJiWEi/v5yb3XL5VzoBkHKVk+FMJSMlISgKSHxg5/63Xu+3Ny/tKG33ysbgX5FCfhJT7P7KjPEnR
>T2A/sf3rbDLz/iJrW2Q6eZ33h7p9lpbHJCFpS77Ed/Hc8PwsP9Yf2w/bT/sP+8/FdiD9Ev0H/Sf9
>x9P953Sus170x+yHfvfiTMZWd+L4dn9/9uIe7YuOHO8TjPOHeunoJ1EZhuk73XmeYXID+jQBSXKQ
>G87vuOOO7vnnnx/uASlXR+WzcUnykZjTkvdyn0nuAbnmmmvOqJP8ouQYZyQgeZG/UnJ3+4WvPNe9
>8dbRbuP8q4Ybz5N89P/6rKffQZysOiQRQyJxsuPQB0ibyuflsTSznP3oDRYJSD/skICU4crjyfiG
>X8wRfgsHy89JB+uP7cfJgzi2n4ud87Dfsf+w/9X/0P86l/uP/Q3nOaKfBCT96JzpyBZwZ7vvw/fX
>YR3eeqW76qL+LEh/Y/myMxQlAUkff9nnix5G133wgx8cEojciL6sXt5b9n6GS/JRvtiqxCtnP/KY
>NgwJSLKVknyME5CrrrpquAll57WXuq3+jvruvPcPZzFyZCZJQc6C5DEJSEp2gv1JksUZkPKYuvmw
>f0z9gIVqQDt55mZAPJmEGJ5fv6iccYbN8mP9sf2w/bT/sP/Uf9B/0n/stwPpJPUlfe+N/naLvNzu
>k4+h7/Tmy90Vh9/oruh/ZLB8s9W045+zH/kF8yuuuGLo+w/BVvyXsyS5f2NZSfxxzlDqrKo/bkfq
>DmdKEiBPyl8+yHtpYL5Ca/vpp7vX3/xj99aL/eVYF13ZnX/JlV13QU7t9ABD77B/7IcZjkz3r4dT
>x8nKEih1hieLZCWJR8rwmM/617lxxvD8LD/9imH9sf3ot4sbtp/2H9lR2n/qP+g/ZU0YDnbrPw4U
>3VbOgJwsufn8rTePdW+99nJ/ouDl7tLDW91VV1za/zjhRafOTpQzDjnrUC6nuvLKK992hqLEXPcx
>ZziSN5xNyXDJMw6nUWlg+SvBUqH8VHvujH/99de7rdf/0B1/pf9e4JPDnO3Iyzg8EiBAgAABAgQI
>ECCwO4H0wXMZ1IX9mYoLL7mwv+l7kXyUsxOlX59+fn5aI53+JB85wZDPpiXvrduvTwKyLMY0Zl6X
>euPHtOlwTsfkLy/SuGnJXew5DfPGG290+dqt1BuXNHbdBo+H85wAAQIECBAgQIAAgd0LpO+dfnuS
>kCQESTzKmYn01dPhL332Cy+88NRlWTkT0qLsJs44+cjz5B3/H3+KknY5YCOTAAAAAElFTkSuQmCC
>
Comment 34 sscanner 2015-03-30 17:49:00 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 35 sscanner 2015-03-30 17:49:06 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAADO2lDQ1BJQ0MgUHJvZmlsZQAAeAGF
>lEto1FAUhv+MKYK0gqi1FpTgQou0JT7QilDbabXWkXEY+9AiyDRzZxpNMzGZGR+ISEHc+VqKGx+I
>iyriQrpQcKULkULra1EEcaUiiEI3Usb/Ju1MKlYvJPlyzn/P64YAVQ9TjmNFNGDYzrvJrqh26PCA
>tngCVahBNbhShue0JxL7faZWPuev6bdQpGWyScaK9R2Y+LRt9f1Lj2Lv6572+p75+nlvNS4TAopG
>64pswFslDwa8V/LJvJOn5ohkYyiVJjvkRrcn2UG+QV6aDfFgiNPCM4CqNmpyhuMyTmQFuaVoZGXM
>UbJup02bPCXtac8Ypob9Rn7IWdDGlY8BrWuARS8rtgEPGL0LrFpfsTXUASv7gbEtFdvPpD8fpXbc
>y2zZ7IdTqqOs6UOp9HM9sPgaMHO1VPp1q1Sauc0crOOZZRTcoq9lYcorIKg32M34yTlaiIOefFUL
>cJNz7F8CxC4A1z8CGx4Ayx8DiRqgZwci59lucOXFKc4F6Mg5p10zO5TXNuv6dq2dRyu0bttobtRS
>lqX5Lk9zhSfcokg3Y9gqcM7+WsZ7tbB7D/LJ/iLnhLd7lpWRdKqTs0Qz2/qSFp27yY3kexlzTze5
>gddUxt3TG7Cy0cx39wQc6bOtOM9FaiJ19mD8AJnxFdXJR+U8JI94xYMypm8/ltqXINfTnjyei0lN
>Lfe2nRnq4RlJVqwzQx3xWX7tFpIy7zpq7jiW/82ztshzHIYFARM27zY0JNGFKJrgwEUOGXpMKkxa
>pV/QasLD8b8qLSTKuywquvCZez77e06gwN0yfh+icYw0liNo+jv9m/5Gv6nf0b9eqS80VDwj7lHT
>GL/8nXFlZlmNjBvUKOPLmoL4Bqttp9dCltZhXkFPXlnfFK4uY1+pL3s0mUNcjE+HuhShTE0YZDzZ
>tey+SLb4Jvx8c9kWmh61L84+qavkeqOOHZmsfnE2XA1r/7OrYNKyq/DkjZAuPGuhrlU3qd1qi7oD
>mrpLbVNb1U6+7VT3l3f0clYmTrJul9Wn2ION0/RWTroyWwT/Fn4x/C91CVu4pqHJf2jCzWVMS/iO
>4PYfd0j5L/wNAYUVDXxLOzsAACAASURBVHgB7d15kyVXeSfgrOpu7SuSECAktCHEgNiXARuDAwg7
>Zgn+lL/NeL6N51/HTAQje4wdIMRmAWITkqwdrWhptLa6q2ryl7dPd3bq3jy3uo5KpeY50dV3O/nm
>ySe38+Zy78add9650ykECBAgQIAAAQIECBDYB4HNfRiHURAgQIAAAQIECBAgQGAQkIBYEAgQIECA
>AAECBAgQ2DcBCci+URsRAQIECBAgQIAAAQISEMsAAQIECBAgQIAAAQL7JiAB2TdqIyJAgAABAgQI
>ECBAQAJiGSBAgAABAgQIECBAYN8EJCD7Rm1EBAgQIECAAAECBAhIQCwDBAgQIECAAAECBAjsm4AE
>ZN+ojYgAAQIECBAgQIAAAQmIZYAAAQIECBAgQIAAgX0TkIDsG7URESBAgAABAgQIECAgAbEMECBA
>gAABAgQIECCwbwISkH2jNiICBAgQIECAAAECBCQglgECBAgQIECAAAECBPZNQAKyb9RGRIAAAQIE
>CBAgQICABMQyQIAAAQIECBAgQIDAvglIQPaN2ogIECBAgAABAgQIEHjPJCDHjh3rXnnllffkHHvj
>jTe6Z599tss0KAQOosCJEye611577SA27azbdPz48e71118/6+HfjQFrbd7a2ur++Mc/vhtNq45z
>v7fR29vb3Z/+9Kdqu97JCu+15Wu3Fnudp3sdfrftrdWvrV+14Q/S561s97JNmQ7bqk0HyXm3bXkn
>+ntT5+nr3bbxoNQ/9MlPfvLv5xrzxBNPdD/4wQ+6n//8593zzz/fPffcc91jjz3WPfroo93555/f
>XXLJJXODN/vsl7/8ZXf//fd3t956a7OY+xHogQceGBKnJE8//vGPu49+9KPd5uZ7Ju+bJdrZ2ek2
>Nja6PL722k7fMdru+n5sd8EF3RmvL7xwYzbO9MMTJ3b6ZW2ne+qp7SHWeeftbvhpvHVfv/LKdvfM
>M9td38frLrpo+TiPHt3uXn11p7vwwm6Y9nHsY8d2upde2uk7vYu/t95KvdNx1olf4pVYF198evh8
>9oc//KH76U9/OvxlQ3fdddeVQc54/NnPftZ9//vf77L+XtDPkMsvv/yMz8cvnnzyye5f/uVf+une
>6j74wQ+OP3rPPs90Z5qOHDnSXXPNNe+J6Xj44Ye7733ve/0yc2F39dVXv63NL7744rAtTr3bb7/9
>bZ+/22/s5zb6pZdeGpbvHNi56aab3pVJT/Jz1113dR//+MfflfHvx0j3Ok/3OnzLaXwvbhPmpr+F
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 36 sscanner 2015-03-30 17:50:24 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 37 sscanner 2015-03-30 17:50:25 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 38 sscanner 2015-03-30 17:51:58 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 39 sscanner 2015-03-30 17:51:59 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>rQfdubSzPK53OqHUHj2+/PLLw6vpEdNcFpJLpfJ5jsR+/vOfH47oJVFJxyiXbGVBziVc6fR88Ytf
>PHXZR85YJGkIbo7wZtgcFcx1tqmfy0++/e1vD/dT/Md//Ed/mcxFQ6f+d7/73TDM17/+9SH+gw8+
>ONR58803h+vaP/e5z51xlHjZ58lel7U7E5mjXPk8GXLa9a1vfas/Gj4/jlwmkVO+WSDuvffevlN+
>qO+wf3qIc9999w2vcxYp2Wzez4r7wgsvdBkul7alfk7n/dVf/VV/RuOqkfziaTqqL7+8033iE6c7
>qeXk0Ljj/LYBG72RxOCWWw6divb009vdtdee7jxNX5+quOaTDL+qA75miLWr5SxOlrmUJD85s5Gk
>IUlH39cfSs7qlJIzHDnpN27fr3611fWLfj8/t7okgocPn66/TvzEzqVbDz64NSRxR49urLwMLHVz
>hDz3bCQBySUgWV5SsrxlXfvEJz7RZb0Yl1Xr17hOnmcdzGVeOZqVRCbr4Kr1ejpsXi9bX7IuZD1I
>W3PE+PHHH+9+9atf9cvMtd0XvvCFlct+1vFV6+V43MvWx3wej6xv2X4kcfva17526rLRVR7LYmX9
>HJdVw47r5PmyWLmHY9l2rgyb7UwueY1jtg9f/vKXhzM55fPx417nS2LNxUhbfvvb3w5n3XLqP8tC
>5uF0uvJe5nHZRidutpmrtnW5dGpuG57hpyXxcolHTLJtzz6mLPepOze+fD43ncuW2XXaWC7vm3pM
>9zkZ/7JxLBuuLLOZtuk+Yp39aMZVyjr1Vy3Le93vTpeJdTyzvOXy0ZzlzRmuPOYsZrZ32R6NS/bF
>2U5lHnzpS18alr2c+c0ymm1K+hq///3vh332N77xjVPLSvFdtk1YtYys0/Zx23JG+Sc/+cnQR/nq
>V786tCX79xwYTZ/nAx/4wMrlcVk/INvhtKH0aaa2GfeqdTWfrZrH+axW1h12urwk7tz8zHyY2wbk
>svV8nnqZ97/+9a+H/fRnP/vZob+U7VK2pbksP/u7lLOdf8vWw+k2f277sqq/NzRq9N/cPFrV9tHg
>K58u27asrHyAPjjde12jUVkQgpQVNxuJ66+//lTykMGTWGSlu+OOO7qs8Nlo5Dr0nCbP6c9cxpWO
>R4bL5Vw5gpQNSEoy0Nwjkc52Li9IYvOb3/xm+CwLQsabjXFKNkjZ+WQlv7g/7PzNb35zWDCzQKZk
>+MTOUeJsmKYL0vTzJEKr2p1pykYsC3mGyzTFYRpjOo6bb76578jePLQnO6MkGRkul2Qlxmc+85n+
>SPpXh47I3XffPdQriVd2GpnGbHSSjCwr6aCnXHfdYham8/q736XzuzFc9rO9vdO3e6v7P//nreFe
>itTN+L/3vePD5Vp5nfLSS9vDcI89ttXdc8/xvrNxYriXI59l+P/3/46f+vvhD4/383inn/9b3f/9
>v8f7DmTfQz9ZnnlmZxjvqtdJiu6778TQwU7ctCOXkS0r5R6Qa67ZGNpw113Hh7YlRovpmo6zJB/l
>/Rde2Ok+9KGNvqNzOonIJVg5s/TTn57odwJd9zd/c+SMy69uu+3QkID98pdb3f/+37n5+fTZk3Xi
>5x6aJB933HFomF8Zf63kfqKsW1kfS8myk3VnOs659asMWx6zUc/ynWU0O/O59boMUx5XrS9Z59Om
>bIBTcgY1HYQcpEjJZ+lQjJf9dD5WrZfDQKP/Vq2PiRmPHLhIKduIOY9Vscro5oYtdcrjNFamc9V2
>rgyTbWTa/Bd/8ReDV7ahcZ2WFvOlFiPjzqWjmY50epJQJBGZTle2U+NtdG1bV9uGT6c1r9N5S8Ka
>zka2qeMvTaiNb24689mybfw6bSzb+KnHdH+wahzT4ZJ0zO0javvRqVut/tyyvNf97nSZWMezHIDL
>/M1fktrsn5fda5r9e97PgYVsK3IpXsaRBLXUz1UHuQR1nKiu2ibMLSPrtH1s/6EPfWjof2T7VtqS
>bWmSpSQfc+Nati3MQZtxn2Zqm3GvWlfn5vG4zcue72bY6fKSeHPzs2aa+Z4+Yw5qpOTAb+Zntp9J
>xpLIZR+YxCT7wTnT2rim6+F0/a1tX5b194ZGT/5bNY/m2j4J8baXGXbZ9uttFQ/gG7tKQLLz+e53
>vzskH+n0pwOdlaWUZGGZUVlgshPNTMwKmJvXcyQzf9mZJclIJzyJSnZaSSaysJUNSOJlo1K+4SQb
>l3KqO59l5UvikYUqK3M2ONkxTb8la9y2DDct5fO5difrTfuyIUzJxizTWEqJUV7PPaZzlZ13OmMp
>ZZpzhCFG5X6a7DTilA1w2XhN4+Zm6RyUzZH6dNC/+93j3Wc/e7ifJ4uOce5NSAc+X2yUS5lScmP3
>c8/t9G6L16++ut0nFyeGI+4f+cih/nGz32Bs956LseUsSy6z+tznDvXOG30H5NDQ6U7Sc/ToTm++
>WHxSr/b6X//1xJAs5RKmq67aGNoxvsdiMcbF/2lnzjz88Y87fUd1s/vGNw73y9ROv0zl3oy9T9d4
>XNPnSRyefHK7T1zPPOKdtsQmbXj44a1+uT9zyPe/f7P71KcO9x3dw8NnuRdkWVkWP/PhoYcWyUf6
>55lH47Mry+LkvXTis1PKxqcsk9ngL7smvixrWWdSxuvX8MbJ/xIr61a5xDJvz60f42HzfG59GXcC
>Unf8etmyn0Ro1fYkwy8r0/UxHfns9LONyFG0so1Yx2Maq4xvnWFL3fJYYq0z7I033jhs19LuT33q
>U8MZ4GwjpqXFfJmLkXFmG1zOwKYDlbMx421Sma7pNrq2rVt3G16mOdvHtCfb+5SMN/O2lNr45qZz
>1TK7ThtTZ1yKx/i9PF81jlKvDFebjtp+tMQrj7X6c8vjdJ6u45Hxlmk5m+Ef7Q+mFNPs8/M824BM
>x7KSbV2Wi3TCUrKOp/+RjnNKPkuiMi6rtglzy8i60z4eTw5aJknOdiwl87bs++fGtWxbWNa5VbZz
>6+rcPB63d9nz3Qw7nd+JNzc/a6alj5flIP2h7C+S2OVMSxKGjC8JSEqc50xr4xqC9P8V3/K6PNbW
>y1Jv7nFuHs21fS5mPqttW2rDv5ufn9nLqrQkR/FzFiJH7HPpRzrI45LOdTYU5V6HPGaFW7XxyA42
>C3iy2XSMsrPNpQk57ZZOfzlamnFMF4zp6yQ7ZSM0btM6z+fanQU3HYIcfUunLJeFpc1nU3JqNfHG
>w5ede6Y7HlnJsmLNlZwFyBmHXOqTpCPlF7840X9Dzonuv//3HA1a9I7Tkc89GeV1OsVJPi64YPF5
>YvSjGxKVxMi3WOXG54svXkxfjsbnkqQXXtjuOyGb/dHwxfvPPbc9DFcSmyRDuSSpfGPT9PVPfnJi
>OKNQbo7Pt0jl3pXSrox7XHJ2Jzlepq+chej72f3ysKi11+kaj2v8PGde/v3fT3Rf+crhfj4tjMrn
>Sbbyd911W/3yn/tskoCdWSd1Y5ek6U9/Op2klhjL4uebsZLYxDrJ1VNPbfUu+SKBt8cuccpjlqPs
>5HIEKBvI7KSSkCxbfrK+zK1fiZkdd9ahv/3bvy2jGB7n1o8zKvYv9rK+TJf93Yx32o7yerydSNJV
>tinreJQY08d3etjx0beyfShnf8dt2Y3PqvkyFyOXJZTxl/FmW7iqjK3X2daN6yfm3DY8CUg6IpmH
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 40 sscanner 2015-03-30 17:52:00 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 41 sscanner 2015-03-30 17:53:07 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 42 sscanner 2015-03-30 17:53:08 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 43 sscanner 2015-03-30 17:54:29 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 44 sscanner 2015-03-30 17:54:31 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 45 sscanner 2015-03-30 17:54:31 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 46 sscanner 2015-03-30 17:55:38 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 47 sscanner 2015-03-30 17:55:38 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 48 sscanner 2015-03-30 17:55:39 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 49 sscanner 2015-03-30 17:57:07 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 50 sscanner 2015-03-30 17:57:08 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!
Comment 51 sscanner 2015-03-30 17:57:08 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 52 sscanner 2015-03-30 17:58:16 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 53 sscanner 2015-03-30 17:58:18 PDT
Comment on attachment 27010 [details]
Reduction

><div style="width: 800px;">
><table>
>    <tr valign="top">
>        <td>
>            <img src="http://webkit.org/images/icon-gold.png">
>        </td>
>        <td>
>            <div style="margin: 0 0 1px 0;"></div>
>			<div></div>
>			<div></div>
>        </td>
>    </tr>
></table>
></div>
Comment 54 sscanner 2015-03-30 17:59:42 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 55 sscanner 2015-03-30 17:59:43 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=23524.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        * fast/repaint/dynamic-table-vertical-alignment-change.html: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png: Added.
>+        * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt: Added.
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html
>===================================================================
>--- LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>+++ LayoutTests/fast/repaint/dynamic-table-vertical-alignment-change.html	(revision 0)
>@@ -0,0 +1,34 @@
>+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>+        "http://www.w3.org/TR/html4/strict.dtd">
>+
>+<head>
>+    <script src="repaint.js" type="text/javascript"></script>
>+    <script type="text/javascript">
>+       function repaintTest()
>+       {
>+           document.getElementById("target").style.cssFloat = 'left';
>+           document.getElementById("target").style.backgroundColor = 'green';
>+           document.getElementById("target").style.width = '100px';
>+           document.getElementById("target").style.height='100px';
>+       }
>+    </script>
>+</head>
>+<body onload="runRepaintTest();">
>+ <p>
>+        Repaint test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=23524">Bugzilla bug 23524</a></i>
>+        Make sure that a table section doesn't stop painting when vertical alignment of cells dynamically changes.
>+</p>
>+<div style="width: 800px;">
>+<table>
>+    <tr valign="top">
>+        <td>
>+            <div id="target"></div>
>+        </td>
>+        <td>
>+            <div style="margin: 0 0 1px 0;"></div>
>+			<div></div>
>+			<div></div>
>+        </td>
>+    </tr>
>+</table>
>+</div>
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum	(revision 0)
>@@ -0,0 +1 @@
>+df19844088ad92ba8f844abcc399bebd
>\ No newline at end of file
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt
>===================================================================
>--- LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>+++ LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt	(revision 0)
>@@ -0,0 +1,26 @@
>+layer at (0,0) size 808x585
>+  RenderView at (0,0) size 800x585
>+layer at (0,0) size 808x182
>+  RenderBlock {HTML} at (0,0) size 800x182
>+    RenderBody {BODY} at (8,16) size 784x158
>+      RenderBlock {P} at (0,0) size 784x36
>+        RenderText {#text} at (0,0) size 100x18
>+          text run at (0,0) width 100: "Repaint test for "
>+        RenderInline {I} at (0,0) size 124x18
>+          RenderInline {A} at (0,0) size 124x18 [color=#0000EE]
>+            RenderText {#text} at (100,0) size 124x18
>+              text run at (100,0) width 124: "Bugzilla bug 23524"
>+        RenderText {#text} at (224,0) size 751x36
>+          text run at (224,0) width 4: " "
>+          text run at (228,0) width 523: "Make sure that a table section doesn't stop painting when vertical alignment of cells"
>+          text run at (0,18) width 136: "dynamically changes."
>+      RenderBlock {DIV} at (0,52) size 800x106
>+        RenderTable {TABLE} at (0,0) size 110x106
>+          RenderTableSection {TBODY} at (0,0) size 110x106
>+            RenderTableRow {TR} at (0,2) size 110x102
>+              RenderTableCell {TD} at (2,2) size 102x102 [r=0 c=0 rs=1 cs=1]
>+                RenderBlock (floating) {DIV} at (1,1) size 100x100 [bgcolor=#008000]
>+              RenderTableCell {TD} at (106,2) size 2x3 [r=0 c=1 rs=1 cs=1]
>+                RenderBlock {DIV} at (1,1) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>+                RenderBlock {DIV} at (1,2) size 0x0
>Index: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>===================================================================
>Cannot display: file marked as a binary type.
>svn:mime-type = application/octet-stream
>
>Property changes on: LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png
>___________________________________________________________________
>Name: svn:mime-type
>   + application/octet-stream
>
>
>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
>7V62KcuGbdGmuWk+6J+9E/29qfP09UE3mWtfNQFJxyVHDZJ4/OVf/uWQANxwww19J+zVoRP0vve9
>r7v00kvnxtHks/e///1dxnv48OG14uWI7jPPPLOybbXP1xlJLUbc/u3f/m1wS/vTWUxnsEX5wx+2
>+tgnul/8Yqvv9O8MHef779/q51XXXXXVO5/gvPjidvfd757obrxxs0+ouiFhuPvurb4zsNknphtn
>vF7VmV/l0Oczw/D33rvVffKTh7pDh87shK8a7mzfTwL17/++1f3mN1vdk0/udA89tN1P007fcT3t
>uLW10z344HafXHTdI49sD3VvvjnTfrptP//5VvfAA1t9krA9/GU6PvCBzSFBq8Uft/3NN3e6f/3X
>431yv9G9732n25A6l112WXfeeef17XyyO3r0aHfLLbe8bZ146623+uXiF8N6m45q6syVxHzqqaeG
>ju97OQEZr4/ZbuVAyRVXXHFWCcg41pzdOp+tG+vKK6/sl72HhuRjWQKSxKQc+ToICch0una7jV7H
>blWdWCQByBHXdysByXYjy9htt902NHPqsart0/fPdrhpnHfi9W7n6XRadjv8OzENJeZetwklzrv1
>+E7Y7mWbsmzYgzS/dzufpr67Hf6d6u9Nnaevd9vOg1T/zN7NipYt6/QnGUh5+umnVww1/3Y23qtK
>Tq1PS9qwbuc9O+kf/vCH/dHol6Zhhte1z5cO1L85bvM6MdJBzDA5S5DSMlG77rpDfUd0o7vyyo3u
>M585PPxdf/1ml07788+/3W9oQMP/Lr10o/v0pw/1yUY3JAhpS98v7jvMG297vdvRJuFIInX11Rv9
>EezTHfzdxlm3/qOPbncf+chm99/+23ndd75zZEiq7r9/u2/D6WU0Z3Y++tHN/u9Q99WvHu4T8K6/
>rO60c86MXHxx1/3X/3reqb9Pf3qRLK8Tv7T1jTd2hqSyX3T6sxHLV88c1f/whz/cZT1Jh3VaHnnk
>kX56PjK8vWzdXbZ+vRNn5cbry7SNrV8vWx/Lelcb19RjWaxVMabDTuvNxVo2bNo81+7a59PxL3vd
>Yr4sm67dbKOXtWvd90r7W1hMx1liT99f9jr7oyTvKcs8lg2T98bj2M1wy+KNYy37fPreXP1ly+Nu
>5umyadnN8OO2zrVzXG+3z+fWrd3G2s/6rWyXzeN116N1hl01v9+p+dlqHizz3W3sd7K/N51H09el
>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
>pYydauNL4rlq37TKJuPZTRtLu5Y9zo1jXL82HdlHTMt0Pzr9fPp6Wn9uuzCd/unruXmW8U7rT19P
>h49T5nUpeb1smsvn2SfncsUcKU9ymuvwsw1LZy8HJVPGy0lej9sw3ibMrQvT4fJ62va8Ny7p0ySZ
>eLRPqnLANW3K5UMptXFNt4XjuOX5eDpiNreuzs3jEm/ZY8axm2HHbUq82vyc1q+ZTudleZ0D3TXT
>3Y5r7HE26+V4+Dyfm0e1tk9jjV+vu20ZD3NQnu8qAUmjczQhp5uyc8oKnsy0lGRiOVqRlW6dkpUs
>f2UhyuURyW7TyU8SUo4crBNrL3Vq7c5lXEmm0tFLopCzP5npuy2xyTWcWVlKJzE71awY+WzdkkuE
>eur+CODpTmpuov7977eHb2j62McW9wMkUXj/+xd1cqlVjuLnfoRS0skt+/PF1+juDDdYl8+TfLz2
>2uJrZ3OGpJQkLul8l2+ASsKRb3sqZfz6yScXnfV06kvJWYRlnffyeRKQ227bPJXQ5AzL+EzOXqer
>jGf8mEus8i1Wn/3soVPjHX9enufMxJEjW30iHoPy7pmPSfCms3NV/B//ON9iliN1i+wq05qDd3fd
>daK/TPHwbFsy1pyRy3qTMxdZlsoRoTNbtHhVW7+yA886l8src/lPKbX1o9Qrj63Wl92Ot4x/3cea
>x1yc/Ro2neZsH8v2Ytym3fosmy9zMXJZQ7Z3Z1NabevKuHOmPH+JO+5IlOe18c1NZ8axzOZstvGl
>vcse1xlHbTqWxZ3uR5fVGb83rb+XZXkct8XzXOZ3zz33DAclc4Aly38676tK1oscFU8nP+tJ6mb6
>cgVG9rPTsx+r4uT92jIyN+yqz27qz9DkypH+5w6G9pWDj63HVVtX9zKP9zLsbufnKsfyftb3ss6X
>98pja9MSN49ns16Oh8/zuXm017avs22ZtucgvD7da9xFa5LF52hrrsUbX4eb93IkNpil5GhE7tVY
>VnJ6P3WTsCQDzE2puSxr1QK2LEaL9+banYQo05gVKdcgZiHK6bKzKbm0KiXTWkrZqZbPyvtzj/l9
>jH497DvAp2dfkpKUHGVPyQqTo/RJDPJePk/Hdpwo5IxGzjLk63tzxP6//Jf8ZsLpmLnn4umnd/p7
>UU4nH4mdBKNcIpTxjO//mL7O8El0ytmOnE3Je7lkaVnJ5UhJNm6++fQ4f/vbreGsQs6gtJiu6Xhz
>Rum++7b6eZxrjRftWnUjfxKL/JWzP9NYeZ1pzFmQUubif+ELh7r//J8P9Ze2LP4S+z/9p0N9En6o
>3/mWCGc+xqCc7csZjxwFzBHAHCVftRyts35lx51LbHImJAcASplbP0qd8lhbX9L2dctuxrtuzFJv
>HY9Sd/q4n8Nm25OzNssO6uzGZ9V8mYuRzzJczkaXkuVunQNDZTnc67aujDeXY2RfkSPcy0ptfHPT
>ucpm2XjO9r11x1GbjmXjH+9Hl30+fW9cfy/L8jRui9dJIHJWN/vFLGv50ohaSSc/93Xkqow8v/HG
>G4dtWM44zJ09mcadW0amddd9nW1zpiP3spXLrzJs63HNrat7mcd7GTbTeTbzM8OdTWltOm7D2ayX
>4+HzfG4e7aXt625bpu05CK9P95JmWpOj9inpfKfkSMNXvvKVYceYoxWlM5QVPzuJvJcdZ05751sp
>xjvPbFhKyQYiR11zbXEQU7Jzyw43SUseEzudlsTNdZ2lAzN+nuHyeWlHXufoVTpkqT8eZz5LGX+e
>Nqxqd97P0ZSUtDPXj5ZLysYxlo0jR2BSEiMlR2OyIx0nZDnCmFO15XRxpqFcJjIMNPkv05MEJJdS
>lU59Eoz/+I/Fj/bddNOi454fxEvCkc5/ftcil1b1ofsO6uKSqoTN18hmuFw6lTMS46+8Tac5N0Xn
>G6HGZXFGJIlM7uPY7o+QLs7G5H6TtGv6Om0oV6y9+eai7YmXduSszLQkOen7PacuvcoZlBdf3Om/
>1aTNdE3HF8/8RkcSiizeSR4eeWRruNcjdXNZ2vhrjZ94YrvfQW727V+45PM//en0dDzxxOIyt6uv
>Xnxei3/FFZv9vFz8xSmLTH5LJcOvSsSzHpZ1Mm0sv0Mw/r2PsgyVdba2fpX1LOtqjtblsobSeVxn
>vU47UubWl8ROopQ66QRl+zBeb6bL/m7Gm3FP18cYlHUvn+d1cal5TGNl+FJqw5Z65XEcq3TmV23n
>Msx4O5ZtZL6MIme3UrLdK9e378Zn1XyZi5HxJin90Y9+NFw+kEsIcnas7IzH05X5mHGU7fI627pS
>d5iw/r8MP5728n4e05HL0eOc6UtJvWw7M97M09r45qZzlU3Gs5s2Tj0yfClz4xgPlw5bbR+RmOP1
>ZrwfLeObPq6qX1uWx/M0MWse42mZLhPrDJ/+Qs5qZH+Y7cWqbeB4+rL/Tp8k484lVbkPJM/TqZsO
>P7dNmFtG1mn7uE3leaYly2b6IuN+UG1c021h4s3Zzq2rtXmceZq/ZWW3w06Xl9r8rC1Pccg+tJTU
>z3ulvXmekjo109q4pr5lnHmsbV9SZ9rfy3vjMjeP1ml7mebEzPPyem7bMh7/QXxe/SHCHO3P5VaZ
>yCyMWamzgcxNnVm5H+1Pfaajks55dpL5LEcisqNIx/1jH/vY8FkmPkdV0yFKcpKdWf6SyGQnl079
>0/3ZkwyblTWXkiR2jnhlXPlK2ow/G5psRNKmdMKywU7MfOVo4uY6yJJpll+lzCnaDDcuiVU+z8xP
>25e1O7HTGUsbs0HNXzp8mfZxjOk40sHI14emfhaUXMKVo9XZsMYmC2tM45tvc8jCn+nNTcSZjkxz
>uWG4tDuJxq9/nR+62xk6y/ml7VyulB/Iyz0VX/7y4d6xPzXSl1zKk+QieV0uyVrc/Lz4Ze7rr190
>5l9+Ob91kfmySEQuu2yjb+di+Hyb029/m851vhFqc6iXhCX3RiShyX0KOcrfT14/DYv3czZl+jqX
>Iz3wwKITn3ElVn7ILwlRfstkWnIpWH+rzNCOfN1tLnXKdJWvtd3rdE3Hl8uuMv1PPLG4yTz3Yzz1
>1M5wE3rGmYTjnnu2+qPA28NZpEzP7befXpbyjWC5JyTJVL4WOcncrbee/rwWf9yefKFAcv3bb3+7
>S6mXZSTfDpd1LstklvcsK1lncmNelsvcU1VOm2cZzedJnFetX9l4Z93Mspp4+cu6kPU348iwc+t1
>aVse59aX7Iyz3iZ2xpl2ZR3IY9aX6bKf+uuON+Mer4+JH6vEzzYi05b1MetW1qt0WlZ5ZGeT+mX7
>MF2357ZVGXba6Rm3K0d3k4Qt285l2GwrHnnkkaHd2T5m2Nxrl853rkPOdi7vZXuRjla2dcu2W/EY
>l1XzJXFWGaczl+16tlEZR9qd+wAzzpTxdGUepk7ey7Y2y1CWm1XbusSK79w2fNz+tCWJT+ZhxhOb
>jCcdkDymcze3bZ1bllbZZBy7aePYY7rMrBrHdD+SS5rzt8otJnP70bFZeT5Xf25ZzjzN9Jd5utv9
>7nSZWGf4JFO51DnTn2U98zvbtqyv5fKlMl3lMYZZjtJnyHzO6+xfczYkr0vJ9izbmFXbhJL8LVuf
>dru8lnHmMctu9v3jszFzy2O2W9NtYeKMl6+pbbYFWeeWrau1eRzjxM62INvGsfNuhs26OF5esu2I
>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
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSPQo/QUAAAZCElEQVQ1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>JCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1A
>AlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASk
>EaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1I
>DQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQ
>IECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAg
>QIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAEC
>BAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIE
>CBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECA
>AAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAA
>gUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjU
>BSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglI
>QBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDU
>jdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQp
>DAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMA
>AQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQ
>IECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAg
>QIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAEC
>BAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIE
>CBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECA
>QF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCR
>gASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJ
>SN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBG
>kMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1
>CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOA
>AAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAA
>AQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQ
>IECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAg
>QIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAEC
>BAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIE
>GglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAX
>kIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCAB
>aQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3
>UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQw
>BAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIE
>CBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECA
>AAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAA
>AQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQ
>IECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAg
>QKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAEC
>dQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYC
>EpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQg
>dSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpB
>CkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQg
>QIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAEC
>BAgQIECAAAECdQEJSN1IDQIECBAgQIAAAQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIE
>CBAgQIAAgUYCEpBGkMIQIECAAAECBAgQIFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECA
>AAECBAjUBSQgdSM1CBAgQIAAAQIECBBoJCABaQQpDAECBAgQIECAAAECdQEJSN1IDQIECBAgQIAA
>AQIEGglIQBpBCkOAAAECBAgQIECAQF1AAlI3UoMAAQIECBAgQIAAgUYCEpBGkMIQIECAAAECBAgQ
>IFAXkIDUjdQgQIAAAQIECBAgQKCRgASkEaQwBAgQIECAAAECBAjUBSQgdSM1CBAgQIAAAQIECBBo
>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
>
Comment 56 sscanner 2015-03-30 17:59:44 PDT
Comment on attachment 27034 [details]
Patch that fixes a couple of problems exposed by the ASSERT!

>Index: WebCore/ChangeLog
>===================================================================
>--- WebCore/ChangeLog	(revision 40236)
>+++ WebCore/ChangeLog	(working copy)
>@@ -1,3 +1,31 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
>+
>+        The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
>+        end up marking ancestors of a block as needing layout when that block was still in the process of
>+        doing a layout.
>+
>+        The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
>+        we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
>+        of objects to avoid accidentally marking a clean ancestor as needing layout again.
>+
>+        Reviewed by NOBODY (OOPS!).
>+
>+        Added fast/repaint/dynamic-table-vertical-alignment-change.html
>+
>+        * rendering/RenderBlock.cpp:
>+        (WebCore::RenderBlock::collapseMargins):
>+        (WebCore::RenderBlock::clearFloatsIfNeeded):
>+        (WebCore::RenderBlock::layoutBlockChildren):
>+        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
>+        * rendering/RenderBlock.h:
>+        * rendering/RenderObject.cpp:
>+        (WebCore::RenderObject::removeFromObjectLists):
>+        * rendering/RenderObject.h:
>+        * rendering/RenderTableSection.cpp:
>+        (WebCore::RenderTableSection::layoutRows):
>+
> 2009-01-25  Dan Bernstein  <mitz@apple.com>
> 
>         Reviewed by Oliver Hunt.
>Index: WebCore/rendering/RenderBlock.cpp
>===================================================================
>--- WebCore/rendering/RenderBlock.cpp	(revision 40234)
>+++ WebCore/rendering/RenderBlock.cpp	(working copy)
>@@ -1066,7 +1066,7 @@ void RenderBlock::collapseMargins(Render
>             child->setChildNeedsLayout(true, false);
> 
>         if (!child->avoidsFloats() && child->containsFloats())
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         // Our guess was wrong. Make the child lay itself out again.
>         child->layoutIfNeeded();
>@@ -1121,7 +1121,7 @@ void RenderBlock::clearFloatsIfNeeded(Re
>         // So go ahead and mark the item as dirty.
>         child->setChildNeedsLayout(true, false);
>     if (!child->avoidsFloats() && child->containsFloats())
>-        child->markAllDescendantsWithFloatsForLayout();
>+        static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
>     child->layoutIfNeeded();
> }
> 
>@@ -1342,7 +1342,7 @@ void RenderBlock::layoutBlockChildren(bo
>         }
> 
>         if (markDescendantsWithFloats)
>-            child->markAllDescendantsWithFloatsForLayout();
>+            static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout();
> 
>         if (child->isRenderBlock())
>             previousFloatBottom = max(previousFloatBottom, oldRect.y() + static_cast<RenderBlock*>(child)->floatBottom());
>@@ -3052,9 +3052,9 @@ bool RenderBlock::containsFloat(RenderOb
>     return false;
> }
> 
>-void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove)
>+void RenderBlock::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove, bool inLayout)
> {
>-    setChildNeedsLayout(true);
>+    setChildNeedsLayout(true, !inLayout);
> 
>     if (floatToRemove)
>         removeFloatingObject(floatToRemove);
>@@ -3064,7 +3064,7 @@ void RenderBlock::markAllDescendantsWith
>         for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>             if (isBlockFlow() && !child->isFloatingOrPositioned() &&
>                 ((floatToRemove ? child->containsFloat(floatToRemove) : child->containsFloats()) || child->shrinkToAvoidFloats()))
>-                child->markAllDescendantsWithFloatsForLayout(floatToRemove);
>+                static_cast<RenderBlock*>(child)->markAllDescendantsWithFloatsForLayout(floatToRemove, inLayout);
>         }
>     }
> }
>Index: WebCore/rendering/RenderBlock.h
>===================================================================
>--- WebCore/rendering/RenderBlock.h	(revision 40234)
>+++ WebCore/rendering/RenderBlock.h	(working copy)
>@@ -177,7 +177,7 @@ public:
>     bool positionNewFloats();
>     void clearFloats();
>     int getClearDelta(RenderBox* child);
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>+    void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, bool inLayout = true);
>     void markPositionedObjectsForLayout();
> 
>     virtual bool containsFloats() { return m_floatingObjects && !m_floatingObjects->isEmpty(); }
>Index: WebCore/rendering/RenderObject.cpp
>===================================================================
>--- WebCore/rendering/RenderObject.cpp	(revision 40235)
>+++ WebCore/rendering/RenderObject.cpp	(working copy)
>@@ -508,10 +508,6 @@ bool RenderObject::hasStaticY() const
>     return (style()->top().isAuto() && style()->bottom().isAuto()) || style()->top().isStatic();
> }
> 
>-void RenderObject::markAllDescendantsWithFloatsForLayout(RenderBox*)
>-{
>-}
>-
> void RenderObject::setPrefWidthsDirty(bool b, bool markParents)
> {
>     bool alreadyDirty = m_prefWidthsDirty;
>@@ -2271,7 +2267,7 @@ void RenderObject::removeFromObjectLists
>         }
> 
>         if (outermostBlock)
>-            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this));
>+            outermostBlock->markAllDescendantsWithFloatsForLayout(toRenderBox(this), false);
>     }
> 
>     if (isPositioned()) {
>Index: WebCore/rendering/RenderObject.h
>===================================================================
>--- WebCore/rendering/RenderObject.h	(revision 40235)
>+++ WebCore/rendering/RenderObject.h	(working copy)
>@@ -362,7 +362,6 @@ public:
>     RenderObject* container() const;
>     RenderObject* hoverAncestor() const;
> 
>-    virtual void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0);
>     void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0);
>     void setNeedsLayout(bool b, bool markParents = true);
>     void setChildNeedsLayout(bool b, bool markParents = true);
>Index: WebCore/rendering/RenderSVGRoot.cpp
>===================================================================
>--- WebCore/rendering/RenderSVGRoot.cpp	(revision 40234)
>+++ WebCore/rendering/RenderSVGRoot.cpp	(working copy)
>@@ -107,7 +107,7 @@ void RenderSVGRoot::layout()
>     
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         if (selfNeedsLayout()) // either bounds or transform changed, force kids to relayout
>-            child->setNeedsLayout(true);
>+            child->setNeedsLayout(true, false);
>         
>         child->layoutIfNeeded();
>         ASSERT(!child->needsLayout());
>Index: WebCore/rendering/RenderTable.cpp
>===================================================================
>--- WebCore/rendering/RenderTable.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTable.cpp	(working copy)
>@@ -295,7 +295,7 @@ void RenderTable::layout()
> 
>     for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
>         // FIXME: What about a form that has a display value that makes it a table section?
>-        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag)))
>+        if (child->needsLayout() && !(child->element() && child->element()->hasTagName(formTag) && !child->isTableSection()))
>             child->layout();
>         if (child->isTableSection()) {
>             RenderTableSection* section = static_cast<RenderTableSection*>(child);
>Index: WebCore/rendering/RenderTableSection.cpp
>===================================================================
>--- WebCore/rendering/RenderTableSection.cpp	(revision 40234)
>+++ WebCore/rendering/RenderTableSection.cpp	(working copy)
>@@ -587,6 +587,8 @@ int RenderTableSection::layoutRows(int t
>         }
>     }
> 
>+    ASSERT(!needsLayout());
>+
>     statePusher.pop();
> 
>     setHeight(m_rowPos[totalRows]);
>Index: LayoutTests/ChangeLog
>===================================================================
>--- LayoutTests/ChangeLog	(revision 40236)
>+++ LayoutTests/ChangeLog	(working copy)
>@@ -1,3 +1,14 @@
>+2009-01-25  David Hyatt  <hyatt@apple.com>
>+
>+        Add layout test for