Changeset 167718 in webkit


Ignore:
Timestamp:
Apr 23, 2014 11:55:43 AM (10 years ago)
Author:
hyatt@apple.com
Message:

[New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
https://bugs.webkit.org/show_bug.cgi?id=132069

Reviewed by Dean Jackson.

Source/WebCore:
This is imported from a patch Morten did for Blink, but I had to change it a fair
bit. deleteLines() is used to handle simple line box layout instead of just calling
deleteLineBoxTree.

I also had to disable the layout state to stop asserts on repaint when the children
get moved. Not sure why Blink didn't hit this, but it's simple enough to add a
LayoutStateDisabler to stop the assert.

Added fast/multicol/inline-children-crash.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):

LayoutTests:

  • fast/multicol/inline-children-crash-expected.txt: Added.
  • fast/multicol/inline-children-crash.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r167716 r167718  
     12014-04-23  David Hyatt  <hyatt@apple.com>
     2
     3        [New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
     4        https://bugs.webkit.org/show_bug.cgi?id=132069
     5
     6        Reviewed by Dean Jackson.
     7
     8        * fast/multicol/inline-children-crash-expected.txt: Added.
     9        * fast/multicol/inline-children-crash.html: Added.
     10
    1112014-04-23  Morten Stenshorne  <mstensho@opera.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r167717 r167718  
     12014-04-23  David Hyatt  <hyatt@apple.com>
     2
     3        [New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
     4        https://bugs.webkit.org/show_bug.cgi?id=132069
     5
     6        Reviewed by Dean Jackson.
     7
     8        This is imported from a patch Morten did for Blink, but I had to change it a fair
     9        bit. deleteLines() is used to handle simple line box layout instead of just calling
     10        deleteLineBoxTree.
     11       
     12        I also had to disable the layout state to stop asserts on repaint when the children
     13        get moved. Not sure why Blink didn't hit this, but it's simple enough to add a
     14        LayoutStateDisabler to stop the assert.
     15
     16        Added fast/multicol/inline-children-crash.html
     17
     18        * rendering/RenderMultiColumnFlowThread.cpp:
     19        (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
     20
    1212014-04-23  Andreas Kling  <akling@apple.com>
    222
  • trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp

    r167714 r167718  
    3131#include "RenderMultiColumnSet.h"
    3232#include "RenderMultiColumnSpannerPlaceholder.h"
     33#include "RenderView.h"
    3334#include "TransformState.h"
    3435
     
    162163    RenderBlockFlow* multicolContainer = multiColumnBlockFlow();
    163164    m_beingEvacuated = true;
     165   
     166    // Delete the line box tree.
     167    deleteLines();
     168   
     169    LayoutStateDisabler layoutStateDisabler(&view());
    164170
    165171    // First promote all children of the flow thread. Before we move them to the flow thread's
     
    184190    while (RenderMultiColumnSet* columnSet = firstMultiColumnSet())
    185191        columnSet->destroy();
    186 
     192   
    187193    destroy();
    188194}
Note: See TracChangeset for help on using the changeset viewer.