From d37310ac5d5f8a3fd1ce1e535647e7c6bb0d7926 Mon Sep 17 00:00:00 2001 From: Arkady Shapkin Date: Fri, 16 Feb 2018 21:45:08 +0300 Subject: [PATCH] Remove checking macros __OPTIMIZE__ for MSVC Visual C++ compiler doesn't define macros __OPTIMIZE__ when optimizations enabled --- src/hb-private.hh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/hb-private.hh b/src/hb-private.hh index 0738b9950..aeed58ae2 100644 --- a/src/hb-private.hh +++ b/src/hb-private.hh @@ -355,9 +355,9 @@ _hb_bit_storage (unsigned int number) { #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) return likely (number) ? (sizeof (unsigned int) * 8 - __builtin_clz (number)) : 0; -#elif defined(_MSC_VER) && defined(__OPTIMIZE__) +#elif defined(_MSC_VER) unsigned long where; - if (_BitScanReverse(&where, number)) return 1 + where; + if (_BitScanReverse (&where, number)) return 1 + where; return 0; #else unsigned int n_bits = 0; @@ -375,11 +375,10 @@ _hb_ctz (unsigned int number) { #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) return likely (number) ? __builtin_ctz (number) : 0; -#elif defined(_MSC_VER) && defined(__OPTIMIZE__) +#elif defined(_MSC_VER) unsigned long where; - if (_BitScanForward(&where, n)) return where; + if (_BitScanForward (&where, number)) return where; return 0; -} #else unsigned int n_bits = 0; if (unlikely (!number)) return 0;