Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 16 additions & 19 deletions llvm/include/llvm/ADT/DenseMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,21 +81,21 @@ class DenseMapBase : public DebugEpochBase {
if (empty())
return end();
if (shouldReverseIterate<KeyT>())
return makeIterator(getBucketsEnd() - 1, getBuckets(), *this);
return makeIterator(getBuckets(), getBucketsEnd(), *this);
return makeIterator(getBucketsEnd() - 1, getBuckets());
return makeIterator(getBuckets(), getBucketsEnd());
}
inline iterator end() {
return makeIterator(getBucketsEnd(), getBucketsEnd(), *this, true);
return makeIterator(getBucketsEnd(), getBucketsEnd(), true);
}
inline const_iterator begin() const {
if (empty())
return end();
if (shouldReverseIterate<KeyT>())
return makeConstIterator(getBucketsEnd() - 1, getBuckets(), *this);
return makeConstIterator(getBuckets(), getBucketsEnd(), *this);
return makeConstIterator(getBucketsEnd() - 1, getBuckets());
return makeConstIterator(getBuckets(), getBucketsEnd());
}
inline const_iterator end() const {
return makeConstIterator(getBucketsEnd(), getBucketsEnd(), *this, true);
return makeConstIterator(getBucketsEnd(), getBucketsEnd(), true);
}

// Return an iterator to iterate over keys in the map.
Expand Down Expand Up @@ -186,15 +186,15 @@ class DenseMapBase : public DebugEpochBase {
if (BucketT *Bucket = doFind(Val))
return makeIterator(
Bucket, shouldReverseIterate<KeyT>() ? getBuckets() : getBucketsEnd(),
*this, true);
true);
return end();
}
template <class LookupKeyT>
const_iterator find_as(const LookupKeyT &Val) const {
if (const BucketT *Bucket = doFind(Val))
return makeConstIterator(
Bucket, shouldReverseIterate<KeyT>() ? getBuckets() : getBucketsEnd(),
*this, true);
true);
return end();
}

Expand Down Expand Up @@ -485,30 +485,27 @@ class DenseMapBase : public DebugEpochBase {
return {makeInsertIterator(Bucket), Inserted};
}

iterator makeIterator(BucketT *P, BucketT *E, DebugEpochBase &Epoch,
bool NoAdvance = false) {
iterator makeIterator(BucketT *P, BucketT *E, bool NoAdvance = false) {
if (shouldReverseIterate<KeyT>()) {
BucketT *B = P == getBucketsEnd() ? getBuckets() : P + 1;
return iterator(B, E, Epoch, NoAdvance);
return iterator(B, E, *this, NoAdvance);
}
return iterator(P, E, Epoch, NoAdvance);
return iterator(P, E, *this, NoAdvance);
}

const_iterator makeConstIterator(const BucketT *P, const BucketT *E,
const DebugEpochBase &Epoch,
const bool NoAdvance = false) const {
if (shouldReverseIterate<KeyT>()) {
const BucketT *B = P == getBucketsEnd() ? getBuckets() : P + 1;
return const_iterator(B, E, Epoch, NoAdvance);
return const_iterator(B, E, *this, NoAdvance);
}
return const_iterator(P, E, Epoch, NoAdvance);
return const_iterator(P, E, *this, NoAdvance);
}

iterator makeInsertIterator(BucketT *TheBucket) {
return makeIterator(TheBucket,
shouldReverseIterate<KeyT>() ? getBuckets()
: getBucketsEnd(),
*this, true);
return makeIterator(
TheBucket,
shouldReverseIterate<KeyT>() ? getBuckets() : getBucketsEnd(), true);
}

unsigned getNumEntries() const {
Expand Down