diff options
author | truelight <truelight@openttd.org> | 2007-11-07 22:41:50 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2007-11-07 22:41:50 +0000 |
commit | 4bcca427622eee34bd9cde98036436c5aacb69f1 (patch) | |
tree | 5c167b8e64b06eb8b463738827372ce597a354ed | |
parent | cd5597dddf6ec33d9c2bd1db1a892267e9acbc9e (diff) | |
download | openttd-4bcca427622eee34bd9cde98036436c5aacb69f1.tar.xz |
(svn r11390) -Fix r11387: AB() was wrong (spotted by Rafal Rzepecki, patch by skidd13)
-rw-r--r-- | src/macros.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/macros.h b/src/macros.h index 2f5a9b48f..004e4039d 100644 --- a/src/macros.h +++ b/src/macros.h @@ -66,9 +66,8 @@ template<typename T, typename U> static inline T SB(T& x, const uint8 s, const u */ template<typename T, typename U> static inline T AB(T& x, const uint8 s, const uint8 n, const U i) { - const T tmp = (T)(((1U << n) - 1) << s); - x &= ~tmp; - x |= (T)((x + (i << s)) & tmp); + const T mask = (T)(((1U << n) - 1) << s); + x = (T)((x & ~mask) | ((x + (i << s)) & mask)); return x; } |