From: Vlad H. <hv...@us...> - 2007-05-07 13:23:25
|
Build Version : T2.1.0.15742 Firebird 2.1 Alpha 1 (writeBuildNum.sh,v 1.15898 2007/05/07 13:23:23 hvlad Exp $ ) Update of /cvsroot/firebird/firebird2/src/jrd In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv13981/jrd Modified Files: evl.cpp Log Message: Fixed CORE-1248 : Incorrect timestamp arithmetic when one of operands is negative number Index: evl.cpp =================================================================== RCS file: /cvsroot/firebird/firebird2/src/jrd/evl.cpp,v retrieving revision 1.224 retrieving revision 1.225 diff -b -U3 -r1.224 -r1.225 --- evl.cpp 5 May 2007 19:28:46 -0000 1.224 +++ evl.cpp 7 May 2007 13:23:22 -0000 1.225 @@ -3647,7 +3647,11 @@ #ifdef HAVE_LLRINT return llrint(result_days * ISC_TICKS_PER_DAY); #else - return (SINT64)(result_days * ISC_TICKS_PER_DAY + 0.49999999999999); + const double eps = 0.49999999999999; + if (result_days >= 0) + return (SINT64)(result_days * ISC_TICKS_PER_DAY + eps); + else + return (SINT64)(result_days * ISC_TICKS_PER_DAY - eps); #endif } |