[Libreoffice-commits] core.git: include/basegfx

Caolán McNamara caolanm at redhat.com
Sun Oct 29 20:25:06 UTC 2017


 include/basegfx/numeric/ftools.hxx |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 4ee4c599a33e4f7c80046a16894674202692b4b4
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sun Oct 29 13:13:37 2017 +0000

    ofz#3883 Integer-overflow
    
    Change-Id: Ie1fd6617d6e598c6e2cfa8a83a0ffe16948e1efd
    Reviewed-on: https://gerrit.libreoffice.org/44022
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/basegfx/numeric/ftools.hxx b/include/basegfx/numeric/ftools.hxx
index 19d8d1722aff..19e8e101987c 100644
--- a/include/basegfx/numeric/ftools.hxx
+++ b/include/basegfx/numeric/ftools.hxx
@@ -59,11 +59,11 @@ namespace basegfx
     */
     inline sal_Int32 fround( double fVal )
     {
-        if (fVal >= std::numeric_limits<sal_Int32>::max())
+        if (fVal >= std::numeric_limits<sal_Int32>::max() - .5)
             return std::numeric_limits<sal_Int32>::max();
-        else if (fVal <= std::numeric_limits<sal_Int32>::min())
+        else if (fVal <= std::numeric_limits<sal_Int32>::min() + .5)
             return std::numeric_limits<sal_Int32>::min();
-        return fVal > 0.0 ? static_cast<sal_Int32>( fVal + .5 ) : -static_cast<sal_Int32>( -fVal + .5 );
+        return fVal > 0.0 ? static_cast<sal_Int32>( fVal + .5 ) : static_cast<sal_Int32>( fVal - .5 );
     }
 
     /** Round double to nearest integer


More information about the Libreoffice-commits mailing list