Merge branch 'maint-0.3.0' into maint-0.3.1

This commit is contained in:
Nick Mathewson 2018-01-03 08:59:59 -05:00
commit c1d98c75e3
2 changed files with 7 additions and 2 deletions

5
changes/bug24633 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes (portability, msvc):
- Fix a bug in the bit-counting parts of our timing-wheel code on
MSVC. (Note that MSVC is still not a supported build platform,
due to cyptographic timing channel risks.) Fixes bug 24633;
bugfix on 0.2.9.1-alpha.

View File

@ -40,7 +40,7 @@ static __inline int clz32(unsigned long val)
{ {
DWORD zeros = 0; DWORD zeros = 0;
_BitScanReverse(&zeros, val); _BitScanReverse(&zeros, val);
return zeros; return 31 - zeros;
} }
#ifdef _WIN64 #ifdef _WIN64
/* According to the documentation, these only exist on Win64. */ /* According to the documentation, these only exist on Win64. */
@ -54,7 +54,7 @@ static __inline int clz64(uint64_t val)
{ {
DWORD zeros = 0; DWORD zeros = 0;
_BitScanReverse64(&zeros, val); _BitScanReverse64(&zeros, val);
return zeros; return 63 - zeros;
} }
#else #else
static __inline int ctz64(uint64_t val) static __inline int ctz64(uint64_t val)