Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Unified Diff: chrome/browser/ui/passwords/manage_passwords_state.cc

Issue 1096983002: Update usages of std::map to use ScopedPtrMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@passwordmanager-scopedmemory
Patch Set: Rebase. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/passwords/manage_passwords_state.cc
diff --git a/chrome/browser/ui/passwords/manage_passwords_state.cc b/chrome/browser/ui/passwords/manage_passwords_state.cc
index d4e63413dee78d1297ea29bc78a6f65eca40b827..0b4253fad50f2c1bea4f2882b72818cf06828555 100644
--- a/chrome/browser/ui/passwords/manage_passwords_state.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_state.cc
@@ -14,12 +14,22 @@ using autofill::PasswordFormMap;
namespace {
-// Converts the map with pointers or const pointers to the vector of const
-// pointers.
-template <typename T>
-std::vector<const T*> MapToVector(
- const std::map<base::string16, T*>& map) {
- std::vector<const autofill::PasswordForm*> ret;
+// Returns a vector containing the values of a map.
+template <typename Map>
+std::vector<typename Map::mapped_type> MapToVector(const Map& map) {
+ std::vector<typename Map::mapped_type> ret;
+ ret.reserve(map.size());
+ for (const auto& form_pair : map)
+ ret.push_back(form_pair.second);
+ return ret;
+}
+
+// Takes a ScopedPtrMap. Returns a vector of non-owned pointers to the elements
+// inside the scoped_ptrs.
+template <typename Map>
+std::vector<const typename Map::mapped_type::element_type*>
+ScopedPtrMapToVector(const Map& map) {
+ std::vector<const typename Map::mapped_type::element_type*> ret;
ret.reserve(map.size());
for (const auto& form_pair : map)
ret.push_back(form_pair.second);
@@ -108,7 +118,7 @@ void ManagePasswordsState::OnPendingPassword(
scoped_ptr<password_manager::PasswordFormManager> form_manager) {
ClearData();
form_manager_ = form_manager.Pass();
- current_forms_weak_ = MapToVector(form_manager_->best_matches());
+ current_forms_weak_ = ScopedPtrMapToVector(form_manager_->best_matches());
origin_ = form_manager_->pending_credentials().origin;
SetState(password_manager::ui::PENDING_PASSWORD_STATE);
}

Powered by Google App Engine
This is Rietveld 408576698