diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-07-11 19:01:57 -0700 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-07-11 19:01:57 -0700 |
commit | b0d72e3de1ec2350716300c86bc02930893e9e23 (patch) | |
tree | 9ff3675021806f4e236ffdb73b7c36e44b88a8fc /src/common/bit_field.h | |
parent | e110e656b95c6f7386e3fd1ed086c82ea550ca7c (diff) | |
parent | d5b52805014f537082afae79dc212958295ca9dc (diff) |
Merge pull request #914 from yuriks/bitfield-mask
Common: Fix mask generation in BitField
Diffstat (limited to 'src/common/bit_field.h')
-rw-r--r-- | src/common/bit_field.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/bit_field.h b/src/common/bit_field.h index 6595b5ba4..f64ebdaf6 100644 --- a/src/common/bit_field.h +++ b/src/common/bit_field.h @@ -161,7 +161,7 @@ public: if (std::numeric_limits<T>::is_signed) { std::size_t shift = 8 * sizeof(T)-bits; - return (T)(((storage & GetMask()) << (shift - position)) >> shift); + return (T)((storage << (shift - position)) >> shift); } else { @@ -189,7 +189,7 @@ private: __forceinline StorageType GetMask() const { - return ((~(StorageTypeU)0) >> (8 * sizeof(T)-bits)) << position; + return (((StorageTypeU)~0) >> (8 * sizeof(T)-bits)) << position; } StorageType storage; |