From 5939c09d35de5be4b135bb0ad6dde24700e75fc2 Mon Sep 17 00:00:00 2001 From: Gisle Vanem Date: Wed, 24 Aug 2011 13:52:44 -0400 Subject: [PATCH] lround() missing in MSVC lround() is missing in MS Visual-C's . Not available anywhere. Here is an easy patch. --- changes/msvc_lround | 4 ++++ src/common/util.c | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 changes/msvc_lround diff --git a/changes/msvc_lround b/changes/msvc_lround new file mode 100644 index 0000000000..e4aea95351 --- /dev/null +++ b/changes/msvc_lround @@ -0,0 +1,4 @@ + o Build fixes: + - Provide a substitute implementation of lround() for MSVC, which + apparently lacks it. Patch from Gisle Vanem. + diff --git a/src/common/util.c b/src/common/util.c index b47b9c5fa2..ee0acbbb07 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -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. */