@@ -220,16 +220,22 @@ class DenseMapBase : public DebugEpochBase {
220
220
template <typename ... Ts>
221
221
std::pair<iterator, bool > try_emplace (KeyT &&Key, Ts &&... Args) {
222
222
BucketT *TheBucket;
223
- BucketT *EndBucket =
224
- shouldReverseIterate<KeyT>() ? getBuckets () : getBucketsEnd ();
225
223
if (LookupBucketFor (Key, TheBucket))
226
- return std::make_pair (makeIterator (TheBucket, EndBucket, *this , true ),
224
+ return std::make_pair (makeIterator (TheBucket,
225
+ shouldReverseIterate<KeyT>()
226
+ ? getBuckets ()
227
+ : getBucketsEnd (),
228
+ *this , true ),
227
229
false ); // Already in map.
228
230
229
231
// Otherwise, insert the new element.
230
232
TheBucket =
231
233
InsertIntoBucket (TheBucket, std::move (Key), std::forward<Ts>(Args)...);
232
- return std::make_pair (makeIterator (TheBucket, EndBucket, *this , true ),
234
+ return std::make_pair (makeIterator (TheBucket,
235
+ shouldReverseIterate<KeyT>()
236
+ ? getBuckets ()
237
+ : getBucketsEnd (),
238
+ *this , true ),
233
239
true );
234
240
}
235
241
@@ -239,15 +245,21 @@ class DenseMapBase : public DebugEpochBase {
239
245
template <typename ... Ts>
240
246
std::pair<iterator, bool > try_emplace (const KeyT &Key, Ts &&... Args) {
241
247
BucketT *TheBucket;
242
- BucketT *EndBucket =
243
- shouldReverseIterate<KeyT>() ? getBuckets () : getBucketsEnd ();
244
248
if (LookupBucketFor (Key, TheBucket))
245
- return std::make_pair (makeIterator (TheBucket, EndBucket, *this , true ),
249
+ return std::make_pair (makeIterator (TheBucket,
250
+ shouldReverseIterate<KeyT>()
251
+ ? getBuckets ()
252
+ : getBucketsEnd (),
253
+ *this , true ),
246
254
false ); // Already in map.
247
255
248
256
// Otherwise, insert the new element.
249
257
TheBucket = InsertIntoBucket (TheBucket, Key, std::forward<Ts>(Args)...);
250
- return std::make_pair (makeIterator (TheBucket, EndBucket, *this , true ),
258
+ return std::make_pair (makeIterator (TheBucket,
259
+ shouldReverseIterate<KeyT>()
260
+ ? getBuckets ()
261
+ : getBucketsEnd (),
262
+ *this , true ),
251
263
true );
252
264
}
253
265
@@ -260,16 +272,22 @@ class DenseMapBase : public DebugEpochBase {
260
272
std::pair<iterator, bool > insert_as (std::pair<KeyT, ValueT> &&KV,
261
273
const LookupKeyT &Val) {
262
274
BucketT *TheBucket;
263
- BucketT *EndBucket =
264
- shouldReverseIterate<KeyT>() ? getBuckets () : getBucketsEnd ();
265
275
if (LookupBucketFor (Val, TheBucket))
266
- return std::make_pair (makeIterator (TheBucket, EndBucket, *this , true ),
276
+ return std::make_pair (makeIterator (TheBucket,
277
+ shouldReverseIterate<KeyT>()
278
+ ? getBuckets ()
279
+ : getBucketsEnd (),
280
+ *this , true ),
267
281
false ); // Already in map.
268
282
269
283
// Otherwise, insert the new element.
270
284
TheBucket = InsertIntoBucketWithLookup (TheBucket, std::move (KV.first ),
271
285
std::move (KV.second ), Val);
272
- return std::make_pair (makeIterator (TheBucket, EndBucket, *this , true ),
286
+ return std::make_pair (makeIterator (TheBucket,
287
+ shouldReverseIterate<KeyT>()
288
+ ? getBuckets ()
289
+ : getBucketsEnd (),
290
+ *this , true ),
273
291
true );
274
292
}
275
293
0 commit comments