Avoid safe math in BitMap (#2797)

pull/2798/head
Anton Bukov 4 years ago committed by GitHub
parent 566a774222
commit 3dadd40034
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      contracts/utils/structs/BitMaps.sol

@ -14,8 +14,8 @@ library BitMaps {
* @dev Returns whether the bit at `index` is set.
*/
function get(BitMap storage bitmap, uint256 index) internal view returns (bool) {
uint256 bucket = index / 256;
uint256 mask = 1 << (index % 256);
uint256 bucket = index >> 8;
uint256 mask = 1 << (index & 0xff);
return bitmap._data[bucket] & mask != 0;
}
@ -38,8 +38,8 @@ library BitMaps {
* @dev Sets the bit at `index`.
*/
function set(BitMap storage bitmap, uint256 index) internal {
uint256 bucket = index / 256;
uint256 mask = 1 << (index % 256);
uint256 bucket = index >> 8;
uint256 mask = 1 << (index & 0xff);
bitmap._data[bucket] |= mask;
}
@ -47,8 +47,8 @@ library BitMaps {
* @dev Unsets the bit at `index`.
*/
function unset(BitMap storage bitmap, uint256 index) internal {
uint256 bucket = index / 256;
uint256 mask = 1 << (index % 256);
uint256 bucket = index >> 8;
uint256 mask = 1 << (index & 0xff);
bitmap._data[bucket] &= ~mask;
}
}

Loading…
Cancel
Save