Remove all instances of static_cast<size_t>(1).

In preparation for removing magic numbers, simplify code that is
computing masks with a single bit set.
This commit is contained in:
David Chisnall
2019-04-30 11:49:00 +01:00
parent 95c23b1a00
commit 8bd136c224
7 changed files with 32 additions and 23 deletions

View File

@@ -102,10 +102,13 @@ namespace snmalloc
{
size_t size = sizeclass_to_size(sizeclass);
size_t offset = get_slab_offset(sizeclass, is_short);
size_t all_ones = std::numeric_limits<size_t>::is_signed ?
size_t(-1) :
std::numeric_limits<size_t>::max();
size_t head_start =
remove_cache_friendly_offset(head & ~static_cast<size_t>(1), sizeclass);
size_t slab_start = offset & ~static_cast<size_t>(1);
remove_cache_friendly_offset(head & all_ones, sizeclass);
size_t slab_start = offset & all_ones;
return ((head_start - slab_start) % size) == 0;
}