diff options
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/excel/xelink.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/excel/xltools.cxx | 9 |
2 files changed, 3 insertions, 9 deletions
diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx index 96b6394bea06..c54c6fb4389f 100644 --- a/sc/source/filter/excel/xelink.cxx +++ b/sc/source/filter/excel/xelink.cxx @@ -20,6 +20,7 @@ #include "xelink.hxx" #include <algorithm> +#include <formula/errorcodes.hxx> #include <unotools/collatorwrapper.hxx> #include <svl/zforlist.hxx> #include "document.hxx" @@ -1184,7 +1185,7 @@ void XclExpCrn::WriteDouble( XclExpStream& rStrm, double fValue ) { if( ::rtl::math::isNan( fValue ) ) { - sal_uInt16 nScError = static_cast< sal_uInt16 >( reinterpret_cast< const sal_math_Double* >( &fValue )->nan_parts.fraction_lo ); + sal_uInt16 nScError = formula::GetDoubleErrorValue(fValue); WriteError( rStrm, XclTools::GetXclErrorCode( nScError ) ); } else diff --git a/sc/source/filter/excel/xltools.cxx b/sc/source/filter/excel/xltools.cxx index 3b3c1c852407..a187ebab3e3e 100644 --- a/sc/source/filter/excel/xltools.cxx +++ b/sc/source/filter/excel/xltools.cxx @@ -239,14 +239,7 @@ sal_uInt16 XclTools::GetScErrorCode( sal_uInt8 nXclError ) double XclTools::ErrorToDouble( sal_uInt8 nXclError ) { - union - { - double fVal; - sal_math_Double smD; - }; - ::rtl::math::setNan( &fVal ); - smD.nan_parts.fraction_lo = GetScErrorCode( nXclError ); - return fVal; + return formula::CreateDoubleError(GetScErrorCode( nXclError )); } XclBoolError XclTools::ErrorToEnum( double& rfDblValue, bool bErrOrBool, sal_uInt8 nValue ) |