svx/source/customshapes/EnhancedCustomShape3d.cxx |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 3e9da1e271c26bd17ab4fe107992e6a03fe865de
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Oct 25 15:12:37 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Oct 25 20:13:00 2021 +0200

    ofz#40305 Divide-by-zero
    
    Change-Id: Ib865d880d51d5beef1f235e4a8d5d0c17adf8499
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124153
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/svx/source/customshapes/EnhancedCustomShape3d.cxx 
b/svx/source/customshapes/EnhancedCustomShape3d.cxx
index b6e3e04234ab..05bb45f4a9cf 100644
--- a/svx/source/customshapes/EnhancedCustomShape3d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape3d.cxx
@@ -228,11 +228,11 @@ Point 
EnhancedCustomShape3d::Transformation2D::Transform2D( const basegfx::B3DPo
         aPoint2D.setX( static_cast<sal_Int32>(rPoint3D.getX()) );
         aPoint2D.setY( static_cast<sal_Int32>(rPoint3D.getY()) );
     }
-    else
+    else if (double fDiv = rPoint3D.getZ() - fViewPoint.getZ(); fDiv != 0.0)
     {
         double fX = rPoint3D.getX() - fOriginX;
         double fY = rPoint3D.getY() - fOriginY;
-        double f = ( - fViewPoint.getZ() ) / ( rPoint3D.getZ() - 
fViewPoint.getZ() );
+        double f = ( - fViewPoint.getZ() ) / fDiv;
         aPoint2D.setX( static_cast<sal_Int32>(( fX - fViewPoint.getX() ) * f + 
fViewPoint.getX() + fOriginX ) );
         aPoint2D.setY( static_cast<sal_Int32>(( fY - fViewPoint.getY() ) * f + 
fViewPoint.getY() + fOriginY ) );
     }

Reply via email to