Index: components/search_engines/util.cc |
diff --git a/components/search_engines/util.cc b/components/search_engines/util.cc |
index 1599cbb172a2d767636f246f41c66b1f65503186..3ad9a198b7abe9af1670acf0d472f72e8c83402e 100644 |
--- a/components/search_engines/util.cc |
+++ b/components/search_engines/util.cc |
@@ -15,7 +15,6 @@ |
#include "base/logging.h" |
#include "base/memory/ptr_util.h" |
-#include "base/memory/scoped_vector.h" |
#include "base/time/time.h" |
#include "components/prefs/pref_service.h" |
#include "components/search_engines/template_url.h" |
@@ -51,7 +50,7 @@ GURL GetDefaultSearchURLForSearchTerms(TemplateURLService* service, |
void RemoveDuplicatePrepopulateIDs( |
KeywordWebDataService* service, |
- const ScopedVector<TemplateURLData>& prepopulated_urls, |
+ const std::vector<std::unique_ptr<TemplateURLData>>& prepopulated_urls, |
TemplateURL* default_search_provider, |
TemplateURLService::OwnedTemplateURLVector* template_urls, |
const SearchTermsData& search_terms_data, |
@@ -60,11 +59,8 @@ void RemoveDuplicatePrepopulateIDs( |
// For convenience construct an ID->TemplateURL* map from |prepopulated_urls|. |
std::map<int, TemplateURLData*> prepopulated_url_map; |
- for (std::vector<TemplateURLData*>::const_iterator i( |
- prepopulated_urls.begin()); |
- i != prepopulated_urls.end(); |
- ++i) |
- prepopulated_url_map[(*i)->prepopulate_id] = *i; |
+ for (const auto& url : prepopulated_urls) |
+ prepopulated_url_map[url->prepopulate_id] = url.get(); |
// Separate |template_urls| into prepopulated and non-prepopulated groups. |
std::multimap<int, std::unique_ptr<TemplateURL>> unchecked_urls; |
@@ -189,7 +185,7 @@ ActionsFromPrepopulateData::~ActionsFromPrepopulateData() {} |
// ownership of |prepopulated_urls| and will clear the vector. |
void MergeEnginesFromPrepopulateData( |
KeywordWebDataService* service, |
- ScopedVector<TemplateURLData>* prepopulated_urls, |
+ std::vector<std::unique_ptr<TemplateURLData>>* prepopulated_urls, |
size_t default_search_index, |
TemplateURLService::OwnedTemplateURLVector* template_urls, |
TemplateURL* default_search_provider, |
@@ -232,13 +228,12 @@ void MergeEnginesFromPrepopulateData( |
} |
ActionsFromPrepopulateData CreateActionsFromCurrentPrepopulateData( |
- ScopedVector<TemplateURLData>* prepopulated_urls, |
+ std::vector<std::unique_ptr<TemplateURLData>>* prepopulated_urls, |
const TemplateURLService::OwnedTemplateURLVector& existing_urls, |
const TemplateURL* default_search_provider) { |
// Create a map to hold all provided |template_urls| that originally came from |
// prepopulate data (i.e. have a non-zero prepopulate_id()). |
- typedef std::map<int, TemplateURL*> IDMap; |
- IDMap id_to_turl; |
+ std::map<int, TemplateURL*> id_to_turl; |
for (auto& turl : existing_urls) { |
int prepopulate_id = turl->prepopulate_id(); |
if (prepopulate_id > 0) |
@@ -250,13 +245,11 @@ ActionsFromPrepopulateData CreateActionsFromCurrentPrepopulateData( |
// current data. (If the passed-in URL was user-edited, we persist the user's |
// name and keyword.) If not, add the prepopulated URL. |
ActionsFromPrepopulateData actions; |
- for (size_t i = 0; i < prepopulated_urls->size(); ++i) { |
- // We take ownership of |prepopulated_urls[i]|. |
- std::unique_ptr<TemplateURLData> prepopulated_url((*prepopulated_urls)[i]); |
+ for (auto& prepopulated_url : *prepopulated_urls) { |
const int prepopulated_id = prepopulated_url->prepopulate_id; |
DCHECK_NE(0, prepopulated_id); |
- IDMap::iterator existing_url_iter(id_to_turl.find(prepopulated_id)); |
+ auto existing_url_iter = id_to_turl.find(prepopulated_id); |
if (existing_url_iter != id_to_turl.end()) { |
// Update the data store with the new prepopulated data. Preserve user |
// edits to the name and keyword. |
@@ -273,10 +266,6 @@ ActionsFromPrepopulateData CreateActionsFromCurrentPrepopulateData( |
actions.added_engines.push_back(*prepopulated_url); |
} |
} |
- // The above loop takes ownership of all the contents of prepopulated_urls. |
- // Clear the pointers. |
- prepopulated_urls->weak_erase(prepopulated_urls->begin(), |
- prepopulated_urls->end()); |
// The block above removed all the URLs from the |id_to_turl| map that were |
// found in the prepopulate data. Any remaining URLs that haven't been |
@@ -284,7 +273,7 @@ ActionsFromPrepopulateData CreateActionsFromCurrentPrepopulateData( |
// We assume that this entry is equivalent to the DSE if its prepopulate ID |
// and keyword both match. If the prepopulate ID _does_ match all properties |
// will be replaced with those from |default_search_provider| anyway. |
- for (IDMap::iterator i(id_to_turl.begin()); i != id_to_turl.end(); ++i) { |
+ for (auto i = id_to_turl.begin(); i != id_to_turl.end(); ++i) { |
TemplateURL* template_url = i->second; |
if ((template_url->safe_for_autoreplace()) && |
(!default_search_provider || |
@@ -348,7 +337,7 @@ void GetSearchProvidersUsingLoadedEngines( |
DCHECK(template_urls); |
DCHECK(resource_keyword_version); |
size_t default_search_index; |
- ScopedVector<TemplateURLData> prepopulated_urls = |
+ std::vector<std::unique_ptr<TemplateURLData>> prepopulated_urls = |
TemplateURLPrepopulateData::GetPrepopulatedEngines(prefs, |
&default_search_index); |
RemoveDuplicatePrepopulateIDs(service, prepopulated_urls, |