Skip to content

Commit 08e904a

Browse files
authored
Merge pull request #4540 from danpoe/refactor/use-size-t-in-small-map
Use size_t instead of unsigned in small_mapt
2 parents 6724b09 + 5b5180d commit 08e904a

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/util/small_map.h

+18-18
Original file line numberDiff line numberDiff line change
@@ -190,35 +190,35 @@ class small_mapt
190190
static_assert(S_BITS <= N_BITS, "S_BITS should be no larger than N_BITS");
191191

192192
static_assert(
193-
std::numeric_limits<unsigned>::digits >= BITS,
193+
std::numeric_limits<std::size_t>::digits >= BITS,
194194
"BITS must fit into an unsigned");
195195

196196
// Internal
197197

198-
unsigned get_field(std::size_t field) const
198+
std::size_t get_field(std::size_t field) const
199199
{
200200
PRECONDITION(field < NUM);
201201

202-
unsigned shift = field * BITS;
202+
std::size_t shift = field * BITS;
203203
return (ind & (MASK << shift)) >> shift;
204204
}
205205

206-
void set_field(std::size_t field, unsigned v)
206+
void set_field(std::size_t field, std::size_t v)
207207
{
208208
PRECONDITION(field < NUM);
209209
PRECONDITION((std::size_t)(v >> 1) < NUM);
210210

211-
unsigned shift = field * BITS;
211+
std::size_t shift = field * BITS;
212212

213213
ind &= ~((index_fieldt)MASK << shift);
214-
ind |= v << shift;
214+
ind |= (index_fieldt)v << shift;
215215
}
216216

217217
void shift_indices(std::size_t ii)
218218
{
219219
for(std::size_t idx = 0; idx < S_BITS / BITS; idx++)
220220
{
221-
unsigned v = get_field(idx);
221+
std::size_t v = get_field(idx);
222222
if(v & 1)
223223
{
224224
v >>= 1;
@@ -234,7 +234,7 @@ class small_mapt
234234
public:
235235
// Standard const iterator
236236

237-
typedef std::pair<const unsigned, const T &> value_type;
237+
typedef std::pair<const std::size_t, const T &> valuet;
238238

239239
/// Const iterator
240240
///
@@ -255,14 +255,14 @@ class small_mapt
255255
{
256256
}
257257

258-
const value_type operator*() const
258+
const valuet operator*() const
259259
{
260-
return value_type(idx, *(m.p + ii));
260+
return valuet(idx, *(m.p + ii));
261261
}
262262

263-
const std::shared_ptr<value_type> operator->() const
263+
const std::shared_ptr<valuet> operator->() const
264264
{
265-
return std::make_shared<value_type>(idx, *(m.p + ii));
265+
return std::make_shared<valuet>(idx, *(m.p + ii));
266266
}
267267

268268
const_iterator operator++()
@@ -299,7 +299,7 @@ class small_mapt
299299
{
300300
while(idx < NUM)
301301
{
302-
unsigned v = m.get_field(idx);
302+
std::size_t v = m.get_field(idx);
303303
if(v & 1)
304304
{
305305
ii = v >> 1;
@@ -394,7 +394,7 @@ class small_mapt
394394
{
395395
PRECONDITION(idx < NUM);
396396

397-
unsigned v = get_field(idx);
397+
std::size_t v = get_field(idx);
398398
if(v & 1)
399399
{
400400
std::size_t ii = v >> 1;
@@ -415,7 +415,7 @@ class small_mapt
415415
{
416416
PRECONDITION(idx < NUM);
417417

418-
unsigned v = get_field(idx);
418+
std::size_t v = get_field(idx);
419419
if(v & 1)
420420
{
421421
std::size_t ii = v >> 1;
@@ -429,7 +429,7 @@ class small_mapt
429429
{
430430
PRECONDITION(idx < NUM);
431431

432-
unsigned v = get_field(idx);
432+
std::size_t v = get_field(idx);
433433

434434
if(v & 1)
435435
{
@@ -466,7 +466,7 @@ class small_mapt
466466
{
467467
PRECONDITION(idx < NUM);
468468

469-
unsigned v = get_field(idx);
469+
std::size_t v = get_field(idx);
470470
INVARIANT(v & 1, "element must be in map");
471471

472472
std::size_t ii = v >> 1;
@@ -500,7 +500,7 @@ class small_mapt
500500
{
501501
PRECONDITION(idx < NUM);
502502

503-
unsigned v = get_field(idx);
503+
std::size_t v = get_field(idx);
504504
INVARIANT(!(v & 1), "element must not be in map");
505505

506506
std::size_t n = size();

0 commit comments

Comments
 (0)