| Index: Source/core/rendering/RenderGrid.cpp
|
| diff --git a/Source/core/rendering/RenderGrid.cpp b/Source/core/rendering/RenderGrid.cpp
|
| index 163edcffe0754ba440f5c24fba58f1a10b62528a..53585d2e2f788705b93b5b160ea0709286f92c9a 100644
|
| --- a/Source/core/rendering/RenderGrid.cpp
|
| +++ b/Source/core/rendering/RenderGrid.cpp
|
| @@ -728,28 +728,24 @@ bool RenderGrid::tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection dire
|
| }
|
| #endif
|
|
|
| -void RenderGrid::growGrid(GridTrackSizingDirection direction, size_t maximumPositionIndex)
|
| +void RenderGrid::ensureGridSize(size_t maximumRowIndex, size_t maximumColumnIndex)
|
| {
|
| - if (direction == ForColumns) {
|
| - ASSERT(maximumPositionIndex >= gridColumnCount());
|
| - for (size_t row = 0; row < gridRowCount(); ++row)
|
| - m_grid[row].grow(maximumPositionIndex + 1);
|
| - } else {
|
| - ASSERT(maximumPositionIndex >= gridRowCount());
|
| - const size_t oldRowSize = gridRowCount();
|
| - m_grid.grow(maximumPositionIndex + 1);
|
| + const size_t oldRowSize = gridRowCount();
|
| + if (maximumRowIndex >= oldRowSize) {
|
| + m_grid.grow(maximumRowIndex + 1);
|
| for (size_t row = oldRowSize; row < gridRowCount(); ++row)
|
| m_grid[row].grow(gridColumnCount());
|
| }
|
| +
|
| + if (maximumColumnIndex >= gridColumnCount()) {
|
| + for (size_t row = 0; row < gridRowCount(); ++row)
|
| + m_grid[row].grow(maximumColumnIndex + 1);
|
| + }
|
| }
|
|
|
| void RenderGrid::insertItemIntoGrid(RenderBox* child, const GridCoordinate& coordinate)
|
| {
|
| - // Ensure that the grid is big enough to contain new grid item.
|
| - if (gridRowCount() <= coordinate.rows.resolvedFinalPosition.toInt())
|
| - growGrid(ForRows, coordinate.rows.resolvedFinalPosition.toInt());
|
| - if (gridColumnCount() <= coordinate.columns.resolvedFinalPosition.toInt())
|
| - growGrid(ForColumns, coordinate.columns.resolvedFinalPosition.toInt());
|
| + ensureGridSize(coordinate.rows.resolvedFinalPosition.toInt(), coordinate.columns.resolvedFinalPosition.toInt());
|
|
|
| for (GridSpan::iterator row = coordinate.rows.begin(); row != coordinate.rows.end(); ++row) {
|
| for (GridSpan::iterator column = coordinate.columns.begin(); column != coordinate.columns.end(); ++column)
|
|
|