svx/source/svdraw/svdoole2.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
New commits: commit ab5928517639e49dbcab2c2de195849d611124b9 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Fri Sep 16 12:33:07 2022 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Sep 16 13:48:26 2022 +0200 tdf#150987 calc crash pasting content regression from commit d0119ff7f2c68aa05286bd303128f3a69c6bbd6a improve tools::Rectangle->basegfx::B2?Rectangle conversion which resulted in Fraction throwing an exception because of divide-by-zero Change-Id: I90a92a644c5fb40e9b93237c79f6760d4bb73d0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140064 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx index 304ed04a0051..a5ebed7ce7ce 100644 --- a/svx/source/svdraw/svdoole2.cxx +++ b/svx/source/svdraw/svdoole2.cxx @@ -1474,8 +1474,10 @@ void SdrOle2Obj::ImpSetVisAreaSize() // objects' visual area. The scaling will not change, but it might exist already and must // be used in calculations MapUnit aMapUnit = VCLUnoHelper::UnoEmbed2VCLMapUnit( mpImpl->mxObjRef->getMapUnit( GetAspect() ) ); - Size aVisSize( static_cast<tools::Long>( Fraction( maRect.GetWidth() ) / aScaleWidth ), - static_cast<tools::Long>( Fraction( maRect.GetHeight() ) / aScaleHeight ) ); + Size aVisSize; + if (sal_Int32(aScaleWidth) != 0 && sal_Int32(aScaleHeight) != 0) // avoid div by zero + aVisSize = Size( static_cast<tools::Long>( Fraction( maRect.GetWidth() ) / aScaleWidth ), + static_cast<tools::Long>( Fraction( maRect.GetHeight() ) / aScaleHeight ) ); aVisSize = OutputDevice::LogicToLogic( aVisSize,