summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/excel/xelink.cxx3
-rw-r--r--sc/source/filter/excel/xltools.cxx9
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 )