| Index: chrome/browser/ui/search_engines/template_url_table_model.cc
|
| diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc
|
| index 27836e626ec15fbfedb86d7bd35ca7270f1a4517..bbfb283c9d0a946e812b563c12e54bb59952919b 100644
|
| --- a/chrome/browser/ui/search_engines/template_url_table_model.cc
|
| +++ b/chrome/browser/ui/search_engines/template_url_table_model.cc
|
| @@ -131,45 +131,42 @@ TemplateURLTableModel::TemplateURLTableModel(
|
|
|
| TemplateURLTableModel::~TemplateURLTableModel() {
|
| template_url_service_->RemoveObserver(this);
|
| - base::STLDeleteElements(&entries_);
|
| }
|
|
|
| void TemplateURLTableModel::Reload() {
|
| - base::STLDeleteElements(&entries_);
|
| + entries_.clear();
|
|
|
| TemplateURLService::TemplateURLVector urls =
|
| template_url_service_->GetTemplateURLs();
|
|
|
| - std::vector<ModelEntry*> default_entries, other_entries, extension_entries;
|
| + std::vector<std::unique_ptr<ModelEntry>> default_entries, other_entries,
|
| + extension_entries;
|
| // Keywords that can be made the default first.
|
| - for (TemplateURLService::TemplateURLVector::iterator i = urls.begin();
|
| - i != urls.end(); ++i) {
|
| - TemplateURL* template_url = *i;
|
| + for (auto* template_url : urls) {
|
| // NOTE: we don't use ShowInDefaultList here to avoid items bouncing around
|
| // the lists while editing.
|
| if (template_url->show_in_default_list())
|
| - default_entries.push_back(new ModelEntry(this, template_url));
|
| + default_entries.push_back(
|
| + base::MakeUnique<ModelEntry>(this, template_url));
|
| else if (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION)
|
| - extension_entries.push_back(new ModelEntry(this, template_url));
|
| + extension_entries.push_back(
|
| + base::MakeUnique<ModelEntry>(this, template_url));
|
| else
|
| - other_entries.push_back(new ModelEntry(this, template_url));
|
| + other_entries.push_back(base::MakeUnique<ModelEntry>(this, template_url));
|
| }
|
|
|
| last_search_engine_index_ = static_cast<int>(default_entries.size());
|
| last_other_engine_index_ = last_search_engine_index_ +
|
| static_cast<int>(other_entries.size());
|
|
|
| - entries_.insert(entries_.end(),
|
| - default_entries.begin(),
|
| - default_entries.end());
|
| + std::move(default_entries.begin(), default_entries.end(),
|
| + std::back_inserter(entries_));
|
|
|
| - entries_.insert(entries_.end(),
|
| - other_entries.begin(),
|
| - other_entries.end());
|
| + std::move(other_entries.begin(), other_entries.end(),
|
| + std::back_inserter(entries_));
|
|
|
| - entries_.insert(entries_.end(),
|
| - extension_entries.begin(),
|
| - extension_entries.end());
|
| + std::move(extension_entries.begin(), extension_entries.end(),
|
| + std::back_inserter(entries_));
|
|
|
| if (observer_)
|
| observer_->OnModelChanged();
|
| @@ -305,9 +302,8 @@ TemplateURL* TemplateURLTableModel::GetTemplateURL(int index) {
|
|
|
| int TemplateURLTableModel::IndexOfTemplateURL(
|
| const TemplateURL* template_url) {
|
| - for (std::vector<ModelEntry*>::iterator i = entries_.begin();
|
| - i != entries_.end(); ++i) {
|
| - ModelEntry* entry = *i;
|
| + for (auto i = entries_.begin(); i != entries_.end(); ++i) {
|
| + ModelEntry* entry = i->get();
|
| if (entry->template_url() == template_url)
|
| return static_cast<int>(i - entries_.begin());
|
| }
|
| @@ -364,8 +360,10 @@ void TemplateURLTableModel::NotifyChanged(int index) {
|
| }
|
|
|
| void TemplateURLTableModel::FaviconAvailable(ModelEntry* entry) {
|
| - std::vector<ModelEntry*>::iterator i =
|
| - std::find(entries_.begin(), entries_.end(), entry);
|
| + auto i = std::find_if(entries_.begin(), entries_.end(),
|
| + [entry](const std::unique_ptr<ModelEntry>& ptr) {
|
| + return ptr.get() == entry;
|
| + });
|
| DCHECK(i != entries_.end());
|
| NotifyChanged(static_cast<int>(i - entries_.begin()));
|
| }
|
| @@ -376,7 +374,7 @@ void TemplateURLTableModel::OnTemplateURLServiceChanged() {
|
|
|
| std::unique_ptr<TemplateURLTableModel::ModelEntry>
|
| TemplateURLTableModel::RemoveEntry(int index) {
|
| - std::unique_ptr<ModelEntry> entry(entries_[index]);
|
| + std::unique_ptr<ModelEntry> entry = std::move(entries_[index]);
|
| entries_.erase(index + entries_.begin());
|
| if (index < last_search_engine_index_)
|
| --last_search_engine_index_;
|
| @@ -389,7 +387,7 @@ TemplateURLTableModel::RemoveEntry(int index) {
|
|
|
| void TemplateURLTableModel::AddEntry(int index,
|
| std::unique_ptr<ModelEntry> entry) {
|
| - entries_.insert(entries_.begin() + index, entry.release());
|
| + entries_.insert(entries_.begin() + index, std::move(entry));
|
| if (index <= last_other_engine_index_)
|
| ++last_other_engine_index_;
|
| if (observer_)
|
|
|