@@ -454,28 +454,28 @@ class DenseMapBase : public DebugEpochBase {
454
454
return NextPowerOf2 (NumEntries * 4 / 3 + 1 );
455
455
}
456
456
457
- void moveFromOldBuckets (BucketT *OldBucketsBegin, BucketT *OldBucketsEnd ) {
457
+ void moveFromOldBuckets (iterator_range< BucketT *> OldBuckets ) {
458
458
initEmpty ();
459
459
460
460
// Insert all the old elements.
461
461
const KeyT EmptyKey = getEmptyKey ();
462
462
const KeyT TombstoneKey = getTombstoneKey ();
463
- for (BucketT *B = OldBucketsBegin, *E = OldBucketsEnd; B != E; ++B ) {
464
- if (!KeyInfoT::isEqual (B-> getFirst (), EmptyKey) &&
465
- !KeyInfoT::isEqual (B-> getFirst (), TombstoneKey)) {
463
+ for (BucketT &B : OldBuckets ) {
464
+ if (!KeyInfoT::isEqual (B. getFirst (), EmptyKey) &&
465
+ !KeyInfoT::isEqual (B. getFirst (), TombstoneKey)) {
466
466
// Insert the key/value into the new table.
467
467
BucketT *DestBucket;
468
- bool FoundVal = LookupBucketFor (B-> getFirst (), DestBucket);
468
+ bool FoundVal = LookupBucketFor (B. getFirst (), DestBucket);
469
469
(void )FoundVal; // silence warning.
470
470
assert (!FoundVal && " Key already in new map?" );
471
- DestBucket->getFirst () = std::move (B-> getFirst ());
472
- ::new (&DestBucket->getSecond ()) ValueT (std::move (B-> getSecond ()));
471
+ DestBucket->getFirst () = std::move (B. getFirst ());
472
+ ::new (&DestBucket->getSecond ()) ValueT (std::move (B. getSecond ()));
473
473
incrementNumEntries ();
474
474
475
475
// Free the value.
476
- B-> getSecond ().~ValueT ();
476
+ B. getSecond ().~ValueT ();
477
477
}
478
- B-> getFirst ().~KeyT ();
478
+ B. getFirst ().~KeyT ();
479
479
}
480
480
}
481
481
@@ -867,7 +867,8 @@ class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
867
867
return ;
868
868
}
869
869
870
- this ->moveFromOldBuckets (OldBuckets, OldBuckets + OldNumBuckets);
870
+ this ->moveFromOldBuckets (
871
+ llvm::make_range (OldBuckets, OldBuckets + OldNumBuckets));
871
872
872
873
// Free the old table.
873
874
deallocate_buffer (OldBuckets, sizeof (BucketT) * OldNumBuckets,
@@ -952,6 +953,9 @@ class SmallDenseMap
952
953
struct LargeRep {
953
954
BucketT *Buckets;
954
955
unsigned NumBuckets;
956
+ iterator_range<BucketT *> buckets () {
957
+ return llvm::make_range (Buckets, Buckets + NumBuckets);
958
+ }
955
959
};
956
960
957
961
// / A "union" of an inline bucket array and the struct representing
@@ -1129,7 +1133,7 @@ class SmallDenseMap
1129
1133
Small = false ;
1130
1134
new (getLargeRep ()) LargeRep (allocateBuckets (AtLeast));
1131
1135
}
1132
- this ->moveFromOldBuckets (TmpBegin, TmpEnd);
1136
+ this ->moveFromOldBuckets (llvm::make_range ( TmpBegin, TmpEnd) );
1133
1137
return ;
1134
1138
}
1135
1139
@@ -1141,8 +1145,7 @@ class SmallDenseMap
1141
1145
new (getLargeRep ()) LargeRep (allocateBuckets (AtLeast));
1142
1146
}
1143
1147
1144
- this ->moveFromOldBuckets (OldRep.Buckets ,
1145
- OldRep.Buckets + OldRep.NumBuckets );
1148
+ this ->moveFromOldBuckets (OldRep.buckets ());
1146
1149
1147
1150
// Free the old table.
1148
1151
deallocate_buffer (OldRep.Buckets , sizeof (BucketT) * OldRep.NumBuckets ,
0 commit comments