diff options
-rw-r--r-- | src/mongo/db/exec/cached_plan.cpp | 8 | ||||
-rw-r--r-- | src/mongo/db/exec/multi_plan.cpp | 13 |
2 files changed, 4 insertions, 17 deletions
diff --git a/src/mongo/db/exec/cached_plan.cpp b/src/mongo/db/exec/cached_plan.cpp index c6ac95de7c2..03c6a800768 100644 --- a/src/mongo/db/exec/cached_plan.cpp +++ b/src/mongo/db/exec/cached_plan.cpp @@ -359,16 +359,10 @@ void CachedPlanStage::invalidate(OperationContext* txn, const RecordId& dl, Inva } ++_commonStats.invalidates; - for (std::list<WorkingSetID>::iterator it = _results.begin(); it != _results.end();) { + for (auto it = _results.begin(); it != _results.end(); ++it) { WorkingSetMember* member = _ws->get(*it); if (member->hasLoc() && member->loc == dl) { - std::list<WorkingSetID>::iterator next = it; - ++next; WorkingSetCommon::fetchAndInvalidateLoc(txn, member, _collection); - _results.erase(it); - it = next; - } else { - ++it; } } } diff --git a/src/mongo/db/exec/multi_plan.cpp b/src/mongo/db/exec/multi_plan.cpp index 03e6453d86e..46503849045 100644 --- a/src/mongo/db/exec/multi_plan.cpp +++ b/src/mongo/db/exec/multi_plan.cpp @@ -463,22 +463,15 @@ void invalidateHelper(OperationContext* txn, const RecordId& dl, list<WorkingSetID>* idsToInvalidate, const Collection* collection) { - for (list<WorkingSetID>::iterator it = idsToInvalidate->begin(); - it != idsToInvalidate->end();) { + for (auto it = idsToInvalidate->begin(); it != idsToInvalidate->end(); ++it) { WorkingSetMember* member = ws->get(*it); if (member->hasLoc() && member->loc == dl) { - list<WorkingSetID>::iterator next = it; - next++; WorkingSetCommon::fetchAndInvalidateLoc(txn, member, collection); - ws->flagForReview(*it); - idsToInvalidate->erase(it); - it = next; - } else { - it++; } } } -} + +} // namespace void MultiPlanStage::invalidate(OperationContext* txn, const RecordId& dl, InvalidationType type) { if (_failure) { |