From d6c80f239ee7487e38ce17afdb02c160fca7d313 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Tue, 19 May 2015 11:42:04 +0200 Subject: tools: check for data loss in WriteFraction Currently it's only used in VCL's MapMode. Change-Id: Ib8ce09fadc704bc4d592d333d4cf3bddc9185036 --- tools/source/generic/fract.cxx | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tools/source') diff --git a/tools/source/generic/fract.cxx b/tools/source/generic/fract.cxx index b5db1e02607a..72ce43d954f8 100644 --- a/tools/source/generic/fract.cxx +++ b/tools/source/generic/fract.cxx @@ -384,6 +384,12 @@ SvStream& WriteFraction( SvStream& rOStream, const Fraction& rFract ) rOStream.WriteInt32( 0 ); rOStream.WriteInt32( -1 ); } else { +#if OSL_DEBUG_LEVEL > 0 + // can only write 32 bits - check that no data is lost! + boost::rational copy(rFract.mpImpl->value); + rational_ReduceInaccurate(copy, 32); + assert(copy == rFract.mpImpl->value && "data loss in WriteFraction!"); +#endif rOStream.WriteInt32( rFract.mpImpl->value.numerator() ); rOStream.WriteInt32( rFract.mpImpl->value.denominator() ); } -- cgit