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.grandin@collabora.co.uk>
diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx
index 304ed04..a5ebed7 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,