From b3270caaf1dbbb72e28eb36d74f039ca3c5227f6 Mon Sep 17 00:00:00 2001 From: alberth Date: Wed, 22 Sep 2010 20:59:24 +0000 Subject: (svn r20838) -Fix [FS#4136]: Cast '1' in bitmath functions to width of result before shifting. --- src/core/bitmath_func.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/core/bitmath_func.hpp b/src/core/bitmath_func.hpp index 16812c134..a881ee81d 100644 --- a/src/core/bitmath_func.hpp +++ b/src/core/bitmath_func.hpp @@ -31,7 +31,7 @@ template static FORCEINLINE uint GB(const T x, const uint8 s, const uint8 n) { - return (x >> s) & ((1U << n) - 1); + return (x >> s) & (((T)1U << n) - 1); } /** @@ -55,7 +55,7 @@ static FORCEINLINE uint GB(const T x, const uint8 s, const uint8 n) template static FORCEINLINE T SB(T &x, const uint8 s, const uint8 n, const U d) { - x &= (T)(~(((1U << n) - 1) << s)); + x &= (T)(~((((T)1U << n) - 1) << s)); x |= (T)(d << s); return x; } @@ -78,7 +78,7 @@ static FORCEINLINE T SB(T &x, const uint8 s, const uint8 n, const U d) template static FORCEINLINE T AB(T &x, const uint8 s, const uint8 n, const U i) { - const T mask = (T)(((1U << n) - 1) << s); + const T mask = ((((T)1U << n) - 1) << s); x = (T)((x & ~mask) | ((x + (i << s)) & mask)); return x; } @@ -114,7 +114,7 @@ static FORCEINLINE bool HasBit(const T x, const uint8 y) template static FORCEINLINE T SetBit(T &x, const uint8 y) { - return x = (T)(x | (T)(1U << y)); + return x = (T)(x | ((T)1U << y)); } /** @@ -172,7 +172,7 @@ static FORCEINLINE T ClrBit(T &x, const uint8 y) template static FORCEINLINE T ToggleBit(T &x, const uint8 y) { - return x = (T)(x ^ (T)(1U << y)); + return x = (T)(x ^ ((T)1U << y)); } -- cgit v1.2.3-70-g09d2