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
This commit is contained in:
parent
ff037a8c09
commit
87f5486dcb
1 changed files with 10 additions and 9 deletions
|
@ -860,15 +860,16 @@ void TableLayouter::updateCells( Rectangle& rRectangle )
|
|||
if( xCell.is() )
|
||||
{
|
||||
basegfx::B2IRectangle aCellArea;
|
||||
getCellArea( xCell, aPos, aCellArea );
|
||||
|
||||
Rectangle aCellRect;
|
||||
aCellRect.Left() = aCellArea.getMinX();
|
||||
aCellRect.Right() = aCellArea.getMaxX();
|
||||
aCellRect.Top() = aCellArea.getMinY();
|
||||
aCellRect.Bottom() = aCellArea.getMaxY();
|
||||
aCellRect.Move( rRectangle.Left(), rRectangle.Top() );
|
||||
xCell->setCellRect( aCellRect );
|
||||
if( getCellArea( xCell, aPos, aCellArea ) )
|
||||
{
|
||||
Rectangle aCellRect;
|
||||
aCellRect.Left() = aCellArea.getMinX();
|
||||
aCellRect.Right() = aCellArea.getMaxX();
|
||||
aCellRect.Top() = aCellArea.getMinY();
|
||||
aCellRect.Bottom() = aCellArea.getMaxY();
|
||||
aCellRect.Move( rRectangle.Left(), rRectangle.Top() );
|
||||
xCell->setCellRect( aCellRect );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue