diff --git a/db/pinned_iterators_manager.h b/db/pinned_iterators_manager.h index f8d64762c83cc0955277233f174d717e4b033390..9f814f0d94a3f91ba978d252e773546665fb513e 100644 --- a/db/pinned_iterators_manager.h +++ b/db/pinned_iterators_manager.h @@ -59,13 +59,11 @@ class PinnedIteratorsManager { // Remove duplicate pointers std::sort(pinned_ptrs_.begin(), pinned_ptrs_.end()); - std::unique(pinned_ptrs_.begin(), pinned_ptrs_.end()); + auto unique_end = std::unique(pinned_ptrs_.begin(), pinned_ptrs_.end()); - for (size_t i = 0; i < pinned_ptrs_.size(); i++) { - assert(i == 0 || pinned_ptrs_[i].first != pinned_ptrs_[i - 1].first); - - void* ptr = pinned_ptrs_[i].first; - ReleaseFunction release_func = pinned_ptrs_[i].second; + for (auto i = pinned_ptrs_.begin(); i != unique_end; ++i) { + void* ptr = i->first; + ReleaseFunction release_func = i->second; release_func(ptr); } pinned_ptrs_.clear();