Changeset 100067 in webkit
- Timestamp:
- Nov 11, 2011, 8:40:28 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 6 deleted
- 4 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/table/crash-splitColumn-2-expected.txt (deleted)
-
LayoutTests/fast/table/crash-splitColumn-2.html (deleted)
-
LayoutTests/fast/table/crash-splitColumn-3-expected.txt (deleted)
-
LayoutTests/fast/table/crash-splitColumn-3.html (deleted)
-
LayoutTests/fast/table/crash-splitColumn-expected.txt (deleted)
-
LayoutTests/fast/table/crash-splitColumn.html (deleted)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/RenderTable.cpp (modified) (2 diffs)
-
Source/WebCore/rendering/RenderTableSection.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r100065 r100067 1 2011-11-11 Ojan Vafai <ojan@chromium.org> 2 3 Unreviewed. Rollout http://trac.webkit.org/changeset/99744. 4 https://bugs.webkit.org/show_bug.cgi?id=72203 5 r99744 causes crash in Chromium's dom_perf test. 6 7 * fast/table/crash-splitColumn-2-expected.txt: Removed. 8 * fast/table/crash-splitColumn-2.html: Removed. 9 * fast/table/crash-splitColumn-3-expected.txt: Removed. 10 * fast/table/crash-splitColumn-3.html: Removed. 11 * fast/table/crash-splitColumn-expected.txt: Removed. 12 * fast/table/crash-splitColumn.html: Removed. 13 1 14 2011-11-11 Dominic Mazzoni <dmazzoni@google.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r100066 r100067 1 2011-11-11 Ojan Vafai <ojan@chromium.org> 2 3 Unreviewed. Rollout http://trac.webkit.org/changeset/99744. 4 https://bugs.webkit.org/show_bug.cgi?id=72203 5 r99744 causes crash in Chromium's dom_perf test. 6 7 * rendering/RenderTable.cpp: 8 (WebCore::RenderTable::splitColumn): 9 (WebCore::RenderTable::appendColumn): 10 * rendering/RenderTableSection.cpp: 11 (WebCore::RenderTableSection::addCell): 12 (WebCore::RenderTableSection::recalcCells): 13 (WebCore::RenderTableSection::appendColumn): 14 1 15 2011-11-11 James Robinson <jamesr@chromium.org> 2 16 -
trunk/Source/WebCore/rendering/RenderTable.cpp
r99744 r100067 646 646 m_columns[position + 1].span = oldSpan - firstSpan; 647 647 648 // Propagate the change in our columns representation to the sections that don't need 649 // cell recalc. If they do, they will be synced up directly with m_columns later. 648 // change width of all rows. 650 649 for (RenderObject* child = firstChild(); child; child = child->nextSibling()) { 651 if (!child->isTableSection()) 652 continue; 653 654 RenderTableSection* section = toRenderTableSection(child); 655 if (section->needsCellRecalc()) 656 continue; 657 658 section->splitColumn(position, firstSpan); 650 if (child->isTableSection()) 651 toRenderTableSection(child)->splitColumn(position, firstSpan); 659 652 } 660 653 … … 665 658 void RenderTable::appendColumn(int span) 666 659 { 667 unsigned pos = m_columns.size(); 668 unsigned newSize = pos + 1; 660 // easy case. 661 int pos = m_columns.size(); 662 int newSize = pos + 1; 669 663 m_columns.grow(newSize); 670 664 m_columns[pos].span = span; 671 665 672 // Propagate the change in our columns representation to the sections that don't need 673 // cell recalc. If they do, they will be synced up directly with m_columns later. 666 // change width of all rows. 674 667 for (RenderObject* child = firstChild(); child; child = child->nextSibling()) { 675 if (!child->isTableSection()) 676 continue; 677 678 RenderTableSection* section = toRenderTableSection(child); 679 if (section->needsCellRecalc()) 680 continue; 681 682 section->appendColumn(pos); 668 if (child->isTableSection()) 669 toRenderTableSection(child)->appendColumn(pos); 683 670 } 684 671 -
trunk/Source/WebCore/rendering/RenderTableSection.cpp
r99919 r100067 188 188 void RenderTableSection::addCell(RenderTableCell* cell, RenderTableRow* row) 189 189 { 190 // We don't insert the cell if we need cell recalc as our internal columns' representation191 // will have drifted from the table's representation. Also recalcCells will call addCell192 // at a later time after sync'ing our columns' with the table's.193 if (needsCellRecalc())194 return;195 196 190 int rSpan = cell->rowSpan(); 197 191 int cSpan = cell->colSpan(); … … 1123 1117 void RenderTableSection::recalcCells() 1124 1118 { 1125 ASSERT(m_needsCellRecalc);1126 // We reset the flag here to ensure that |addCell| works. This is safe to do as1127 // we clear the grid and properly rebuild it during |addCell|.1128 m_needsCellRecalc = false;1129 1130 1119 m_cCol = 0; 1131 1120 m_cRow = 0; … … 1154 1143 1155 1144 m_grid.shrinkToFit(); 1145 m_needsCellRecalc = false; 1156 1146 setNeedsLayout(true); 1157 1147 } … … 1186 1176 void RenderTableSection::appendColumn(int pos) 1187 1177 { 1188 ASSERT(!m_needsCellRecalc);1189 1190 1178 for (unsigned row = 0; row < m_grid.size(); ++row) 1191 1179 m_grid[row].row.resize(pos + 1);
Note:
See TracChangeset
for help on using the changeset viewer.