From accd0ea65bb817ad8f2361c5ca06c40ac9a9a11f Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 20 Dec 2017 09:34:25 -0500 Subject: Fix the clz32 and clz64 settings on MSVC. Fixes bug 24633; bugfix on 0.2.9.1-alpha. --- src/ext/timeouts/timeout-bitops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ext/timeouts/timeout-bitops.c b/src/ext/timeouts/timeout-bitops.c index a018f33b95..45466f6cb3 100644 --- a/src/ext/timeouts/timeout-bitops.c +++ b/src/ext/timeouts/timeout-bitops.c @@ -40,7 +40,7 @@ static __inline int clz32(unsigned long val) { DWORD zeros = 0; _BitScanReverse(&zeros, val); - return zeros; + return 31 - zeros; } #ifdef _WIN64 /* According to the documentation, these only exist on Win64. */ @@ -54,7 +54,7 @@ static __inline int clz64(uint64_t val) { DWORD zeros = 0; _BitScanReverse64(&zeros, val); - return zeros; + return 63 - zeros; } #else static __inline int ctz64(uint64_t val) -- cgit v1.2.3-54-g00ecf