lround() missing in MSVC

lround() is missing in MS Visual-C's <math.h>. Not available anywhere.
Here is an easy patch.
This commit is contained in:
Gisle Vanem 2011-08-24 13:52:44 -04:00 committed by Nick Mathewson
parent d79d648edc
commit 5939c09d35
2 changed files with 8 additions and 0 deletions

4
changes/msvc_lround Normal file
View File

@ -0,0 +1,4 @@
o Build fixes:
- Provide a substitute implementation of lround() for MSVC, which
apparently lacks it. Patch from Gisle Vanem.

View File

@ -334,7 +334,11 @@ tor_mathlog(double d)
long
tor_lround(double d)
{
#ifdef _MSC_VER
return (long)(d > 0 ? d + 0.5 : ceil(d - 0.5));
#else
return lround(d);
#endif
}
/** Returns floor(log2(u64)). If u64 is 0, (incorrectly) returns 0. */