svx/source/table/tablelayouter.cxx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
New commits: commit 87f5486dcb36177a0b5d374d3d684885efcd9c28 Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Oct 29 10:47:41 2014 +0100 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 diff --git a/svx/source/table/tablelayouter.cxx b/svx/source/table/tablelayouter.cxx index 0c53684..0793e77 100644 --- a/svx/source/table/tablelayouter.cxx +++ b/svx/source/table/tablelayouter.cxx @@ -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 ); + } } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits