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

Unified Diff: chrome/browser/autofill/personal_data_manager.cc

Issue 5593002: A bit of STL-ified cleanup in the PersonalDataManager code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autofill/personal_data_manager.cc
diff --git a/chrome/browser/autofill/personal_data_manager.cc b/chrome/browser/autofill/personal_data_manager.cc
index 894fa6b0061060a3af2c0da22549ff1bf50aba6b..a4475cbb484ea8a2ed66ddebcbf678881f0f132f 100644
--- a/chrome/browser/autofill/personal_data_manager.cc
+++ b/chrome/browser/autofill/personal_data_manager.cc
@@ -41,6 +41,19 @@ class FormGroupGUIDMatchesFunctor {
};
template<typename T>
+class FormGroupGUIDMatchesFunctor<T *> {
+ public:
+ explicit FormGroupGUIDMatchesFunctor(const std::string& guid) : guid_(guid) {}
+
+ bool operator()(const T* form_group) {
+ return form_group->guid() == guid_;
+ }
+
+ private:
+ std::string guid_;
+};
+
+template<typename T>
class DereferenceFunctor {
public:
template<typename T_Iterator>
@@ -54,49 +67,10 @@ T* address_of(T& v) {
return &v;
}
-bool FindInProfilesByGUID(const std::vector<AutoFillProfile>& profiles,
- const std::string& guid) {
- for (std::vector<AutoFillProfile>::const_iterator iter = profiles.begin();
- iter != profiles.end();
- ++iter) {
- if (iter->guid() == guid)
- return true;
- }
- return false;
-}
-
-bool FindInScopedProfilesByGUID(const ScopedVector<AutoFillProfile>& profiles,
- const std::string& guid) {
- for (std::vector<AutoFillProfile*>::const_iterator iter = profiles.begin();
- iter != profiles.end();
- ++iter) {
- if ((*iter)->guid() == guid)
- return true;
- }
- return false;
-}
-
-bool FindInCreditCardsByGUID(const std::vector<CreditCard>& credit_cards,
- const std::string& guid) {
- for (std::vector<CreditCard>::const_iterator iter = credit_cards.begin();
- iter != credit_cards.end();
- ++iter) {
- if (iter->guid() == guid)
- return true;
- }
- return false;
-}
-
-bool FindInScopedCreditCardsByGUID(
- const ScopedVector<CreditCard>& credit_cards, const std::string& guid) {
- for (std::vector<CreditCard*>::const_iterator iter =
- credit_cards.begin();
- iter != credit_cards.end();
- ++iter) {
- if ((*iter)->guid() == guid)
- return true;
- }
- return false;
+template<typename T, typename C>
+bool FindByGUID(const C& container, const std::string& guid) {
+ return std::find_if(container.begin(), container.end(),
+ FormGroupGUIDMatchesFunctor<T>(guid)) != container.end();
}
} // namespace
@@ -328,21 +302,21 @@ void PersonalDataManager::SetProfiles(std::vector<AutoFillProfile>* profiles) {
for (std::vector<AutoFillProfile*>::const_iterator iter =
web_profiles_.begin();
iter != web_profiles_.end(); ++iter) {
- if (!FindInProfilesByGUID(*profiles, (*iter)->guid()))
+ if (!FindByGUID<AutoFillProfile>(*profiles, (*iter)->guid()))
wds->RemoveAutoFillProfileGUID((*iter)->guid());
}
// Update the web database with the existing profiles.
for (std::vector<AutoFillProfile>::iterator iter = profiles->begin();
iter != profiles->end(); ++iter) {
- if (FindInScopedProfilesByGUID(web_profiles_, iter->guid()))
+ if (FindByGUID<AutoFillProfile*>(web_profiles_, iter->guid()))
wds->UpdateAutoFillProfileGUID(*iter);
}
// Add the new profiles to the web database.
for (std::vector<AutoFillProfile>::iterator iter = profiles->begin();
iter != profiles->end(); ++iter) {
- if (!FindInScopedProfilesByGUID(web_profiles_, iter->guid()))
+ if (!FindByGUID<AutoFillProfile*>(web_profiles_, iter->guid()))
wds->AddAutoFillProfileGUID(*iter);
}
@@ -381,21 +355,21 @@ void PersonalDataManager::SetCreditCards(
// removed.
for (std::vector<CreditCard*>::const_iterator iter = credit_cards_.begin();
iter != credit_cards_.end(); ++iter) {
- if (!FindInCreditCardsByGUID(*credit_cards, (*iter)->guid()))
+ if (!FindByGUID<CreditCard>(*credit_cards, (*iter)->guid()))
wds->RemoveCreditCardGUID((*iter)->guid());
}
// Update the web database with the existing credit cards.
for (std::vector<CreditCard>::iterator iter = credit_cards->begin();
iter != credit_cards->end(); ++iter) {
- if (FindInScopedCreditCardsByGUID(credit_cards_, iter->guid()))
+ if (FindByGUID<CreditCard*>(credit_cards_, iter->guid()))
wds->UpdateCreditCardGUID(*iter);
}
// Add the new credit cards to the web database.
for (std::vector<CreditCard>::iterator iter = credit_cards->begin();
iter != credit_cards->end(); ++iter) {
- if (!FindInScopedCreditCardsByGUID(credit_cards_, iter->guid()))
+ if (!FindByGUID<CreditCard*>(credit_cards_, iter->guid()))
wds->AddCreditCardGUID(*iter);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698