Index: third_party/WebKit/Source/core/layout/LayoutTableSection.h |
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableSection.h b/third_party/WebKit/Source/core/layout/LayoutTableSection.h |
index 916aab9e2f2aa2e4802a97339ac1decc9460a440..52e5d5dc844c3b0fa61fe1717e71fe800053be86 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutTableSection.h |
+++ b/third_party/WebKit/Source/core/layout/LayoutTableSection.h |
@@ -218,6 +218,8 @@ class CORE_EXPORT LayoutTableSection final : public LayoutTableBoxComponent { |
return m_grid[row].row[effectiveColumn]; |
} |
LayoutTableCell* primaryCellAt(unsigned row, unsigned effectiveColumn) { |
+ if (effectiveColumn >= numCols(row)) |
+ return nullptr; |
CellStruct& c = m_grid[row].row[effectiveColumn]; |
return c.primaryCell(); |
} |
@@ -227,6 +229,8 @@ class CORE_EXPORT LayoutTableSection final : public LayoutTableBoxComponent { |
row, effectiveColumn); |
} |
+ unsigned numCols(unsigned row) const { return m_grid[row].row.size(); } |
+ |
// Returns null for cells with a rowspan that exceed the last row. Possibly |
// others. |
LayoutTableRow* rowLayoutObjectAt(unsigned row) { |
@@ -345,7 +349,15 @@ class CORE_EXPORT LayoutTableSection final : public LayoutTableBoxComponent { |
return m_grid[row].rowLayoutObject ? table()->vBorderSpacing() : 0; |
} |
- void ensureRows(unsigned); |
+ void ensureRows(unsigned numRows) { |
+ if (numRows > m_grid.size()) |
+ m_grid.grow(numRows); |
+ } |
+ |
+ void ensureCols(unsigned rowIndex, unsigned numCols) { |
+ if (numCols > this->numCols(rowIndex)) |
+ m_grid[rowIndex].row.grow(numCols); |
+ } |
bool rowHasOnlySpanningCells(unsigned); |
unsigned calcRowHeightHavingOnlySpanningCells(unsigned, |