Index: Source/core/rendering/RenderTableSection.cpp |
diff --git a/Source/core/rendering/RenderTableSection.cpp b/Source/core/rendering/RenderTableSection.cpp |
index da4b53a56e5c1fb5c6908e7bd47bd46eca864cab..799a6962bdcc6ef6bea74cbb13ee80a68de5e412 100644 |
--- a/Source/core/rendering/RenderTableSection.cpp |
+++ b/Source/core/rendering/RenderTableSection.cpp |
@@ -538,6 +538,7 @@ int RenderTableSection::calcRowLogicalHeight() |
Row& row = m_grid[r].row; |
unsigned totalCols = row.size(); |
+ RenderTableCell* lastRowSpanCell = 0; |
for (unsigned c = 0; c < totalCols; c++) { |
CellStruct& current = cellAt(r, c); |
@@ -549,8 +550,9 @@ int RenderTableSection::calcRowLogicalHeight() |
if (RuntimeEnabledFeatures::rowSpanLogicalHeightSpreadingEnabled()) { |
if (cell->rowSpan() > 1) { |
// For row spanning cells, we only handle them for the first row they span. This ensures we take their baseline into account. |
- if (cell->rowIndex() == r) { |
+ if (lastRowSpanCell != cell && cell->rowIndex() == r) { |
rowSpanCells.append(cell); |
suchit.agrawal
2013/09/16 22:05:11
#ifndef NDEBUG
ASSERT(!uniqueCells.contains(cell))
Julien - ping for review
2013/09/16 23:03:02
HashSet<const RenderTableCell*> uniqueCells;
... b
a.suchit
2013/09/17 00:44:11
It would be local variable here. How will it work
|
+ lastRowSpanCell = cell; |
// Find out the baseline. The baseline is set on the first row in a rowSpan. |
updateBaselineForCell(cell, r, baselineDescent); |