Kaydet (Commit) 87f5486d authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Don't use output rArea when TableLayouter::getCellArea returns false

...when xCell->isMerged, as happens during CppunitTest_sd_filters_test.
aCellArea will be "empty" (i.e., getMinX()==SAL_MAX_INT32 etc.) and the
aCellRect.Move calculation will overflow for 32-bit long.

Change-Id: I12649234c060edd9f2cab1792cf75335ae22b730
üst ff037a8c
...@@ -860,15 +860,16 @@ void TableLayouter::updateCells( Rectangle& rRectangle ) ...@@ -860,15 +860,16 @@ void TableLayouter::updateCells( Rectangle& rRectangle )
if( xCell.is() ) if( xCell.is() )
{ {
basegfx::B2IRectangle aCellArea; basegfx::B2IRectangle aCellArea;
getCellArea( xCell, aPos, aCellArea ); if( getCellArea( xCell, aPos, aCellArea ) )
{
Rectangle aCellRect; Rectangle aCellRect;
aCellRect.Left() = aCellArea.getMinX(); aCellRect.Left() = aCellArea.getMinX();
aCellRect.Right() = aCellArea.getMaxX(); aCellRect.Right() = aCellArea.getMaxX();
aCellRect.Top() = aCellArea.getMinY(); aCellRect.Top() = aCellArea.getMinY();
aCellRect.Bottom() = aCellArea.getMaxY(); aCellRect.Bottom() = aCellArea.getMaxY();
aCellRect.Move( rRectangle.Left(), rRectangle.Top() ); aCellRect.Move( rRectangle.Left(), rRectangle.Top() );
xCell->setCellRect( aCellRect ); xCell->setCellRect( aCellRect );
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment