summaryrefslogtreecommitdiff
path: root/stoc
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2019-08-13 14:50:30 +0200
committerStephan Bergmann <sbergman@redhat.com>2019-08-13 17:23:03 +0200
commit63128dd267eb2d487c94ba8db65444a3e5e69fd2 (patch)
tree1e809e1f0c745bc3ad797c8d248c865e46644147 /stoc
parent383032c50a3e3354f04200ce984a47ab9d2c5c67 (diff)
Drop MSVC workaround from 2002
(cf. f2b0299972730989c46949d6101c7c346fc01971 "#97095# MS Visual C++ unsigned __int64 to double missing"), assuming that our baseline MSVC is capable of that by now. Replace DOUBLE_SAL_UINT64_MAX with double(SAL_MAX_UINT64) and replace unsigned_int64_to_double(X) with either X or static_cast<double>(X), matching respective context. Change-Id: Ia1e1daff5cbcb545738615fad541082810d7a46b Reviewed-on: https://gerrit.libreoffice.org/77414 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'stoc')
-rw-r--r--stoc/source/typeconv/convert.cxx29
1 files changed, 4 insertions, 25 deletions
diff --git a/stoc/source/typeconv/convert.cxx b/stoc/source/typeconv/convert.cxx
index 9ec909310b02..9ffef7287d6c 100644
--- a/stoc/source/typeconv/convert.cxx
+++ b/stoc/source/typeconv/convert.cxx
@@ -51,27 +51,6 @@ using namespace osl;
namespace stoc_tcv
{
-/* MS Visual C++ no conversion from unsigned __int64 to double */
-#ifdef _MSC_VER
-static const double DOUBLE_SAL_UINT64_MAX = ((double(SAL_MAX_INT64)) * 2) + 1;
-
-static double unsigned_int64_to_double( sal_uInt64 n )
-{
- sal_uInt64 n2 = n / 3;
- n -= (2 * n2);
- return (static_cast<double>(static_cast<sal_Int64>(n2)) * 2.0) + static_cast<double>(static_cast<sal_Int64>(n));
-}
-#else
-static const double DOUBLE_SAL_UINT64_MAX =
- double(((sal_uInt64(0xffffffff)) << 32) | sal_uInt64(0xffffffff));
-
-static double unsigned_int64_to_double( sal_uInt64 n )
-{
- return static_cast<double>(n);
-}
-#endif
-
-
static double round( double aVal )
{
bool bPos = (aVal >= 0.0);
@@ -221,7 +200,7 @@ static bool getHyperValue( sal_Int64 & rnVal, const OUString & rStr )
double fVal;
if (getNumericValue( fVal, rStr ) &&
fVal >= double(SAL_MIN_INT64) &&
- fVal <= DOUBLE_SAL_UINT64_MAX)
+ fVal <= double(SAL_MAX_UINT64))
{
rnVal = static_cast<sal_Int64>(round( fVal ));
return true;
@@ -335,7 +314,7 @@ sal_Int64 TypeConverter_Impl::toHyper( const Any& rAny, sal_Int64 min, sal_uInt6
{
double fVal = round( *o3tl::forceAccess<float>(rAny) );
nRet = (fVal > SAL_MAX_INT64 ? static_cast<sal_Int64>(static_cast<sal_uInt64>(fVal)) : static_cast<sal_Int64>(fVal));
- if (fVal >= min && fVal <= unsigned_int64_to_double( max ))
+ if (fVal >= min && fVal <= max)
{
return nRet;
}
@@ -347,7 +326,7 @@ sal_Int64 TypeConverter_Impl::toHyper( const Any& rAny, sal_Int64 min, sal_uInt6
{
double fVal = round( *o3tl::forceAccess<double>(rAny) );
nRet = (fVal > SAL_MAX_INT64 ? static_cast<sal_Int64>(static_cast<sal_uInt64>(fVal)) : static_cast<sal_Int64>(fVal));
- if (fVal >= min && fVal <= unsigned_int64_to_double( max ))
+ if (fVal >= min && fVal <= max)
{
return nRet;
}
@@ -432,7 +411,7 @@ double TypeConverter_Impl::toDouble( const Any& rAny, double min, double max )
break;
// UNSIGNED HYPER
case TypeClass_UNSIGNED_HYPER:
- fRet = unsigned_int64_to_double( *o3tl::forceAccess<sal_uInt64>(rAny) );
+ fRet = static_cast<double>(*o3tl::forceAccess<sal_uInt64>(rAny));
break;
// FLOAT, DOUBLE
case TypeClass_FLOAT: