Index: components/dom_distiller/core/distiller.cc |
diff --git a/components/dom_distiller/core/distiller.cc b/components/dom_distiller/core/distiller.cc |
index 75e6047895845806524db40d6c6719d7d78cc1d8..7140753209ebd9169f4bc78eeb953bc28ce26ed5 100644 |
--- a/components/dom_distiller/core/distiller.cc |
+++ b/components/dom_distiller/core/distiller.cc |
@@ -12,6 +12,7 @@ |
#include "base/bind.h" |
#include "base/callback.h" |
#include "base/location.h" |
+#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/single_thread_task_runner.h" |
#include "base/strings/string_number_conversions.h" |
@@ -95,7 +96,7 @@ bool DistillerImpl::IsPageNumberInUse(int page_num) const { |
DistillerImpl::DistilledPageData* DistillerImpl::GetPageAtIndex(size_t index) |
const { |
DCHECK_LT(index, pages_.size()); |
- DistilledPageData* page_data = pages_[index]; |
+ DistilledPageData* page_data = pages_[index].get(); |
DCHECK(page_data); |
return page_data; |
} |
@@ -124,7 +125,7 @@ void DistillerImpl::DistillNextPage() { |
DCHECK(started_pages_index_.find(page_num) == started_pages_index_.end()); |
DCHECK(finished_pages_index_.find(page_num) == finished_pages_index_.end()); |
seen_urls_.insert(url.spec()); |
- pages_.push_back(new DistilledPageData()); |
+ pages_.push_back(base::MakeUnique<DistilledPageData>()); |
started_pages_index_[page_num] = pages_.size() - 1; |
distiller_page_->DistillPage( |
url, |
@@ -291,7 +292,7 @@ void DistillerImpl::FetchImage(int page_num, |
DistilledPageData* page_data = GetPageAtIndex(started_pages_index_[page_num]); |
DistillerURLFetcher* fetcher = |
distiller_url_fetcher_factory_.CreateDistillerURLFetcher(); |
- page_data->image_fetchers_.push_back(fetcher); |
+ page_data->image_fetchers_.push_back(base::WrapUnique(fetcher)); |
fetcher->FetchURL(image_url, |
base::Bind(&DistillerImpl::OnFetchImageDone, |
@@ -311,15 +312,17 @@ void DistillerImpl::OnFetchImageDone(int page_num, |
DistilledPageData* page_data = GetPageAtIndex(started_pages_index_[page_num]); |
DCHECK(page_data->distilled_page_proto.get()); |
DCHECK(url_fetcher); |
- ScopedVector<DistillerURLFetcher>::iterator fetcher_it = |
- std::find(page_data->image_fetchers_.begin(), |
- page_data->image_fetchers_.end(), |
- url_fetcher); |
+ auto fetcher_it = std::find_if( |
+ page_data->image_fetchers_.begin(), page_data->image_fetchers_.end(), |
+ [url_fetcher](const std::unique_ptr<DistillerURLFetcher>& f) { |
+ return url_fetcher == f.get(); |
+ }); |
DCHECK(fetcher_it != page_data->image_fetchers_.end()); |
// Delete the |url_fetcher| by DeleteSoon since the OnFetchImageDone |
// callback is invoked by the |url_fetcher|. |
- page_data->image_fetchers_.weak_erase(fetcher_it); |
+ fetcher_it->release(); |
+ page_data->image_fetchers_.erase(fetcher_it); |
base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, url_fetcher); |
DistilledPageProto_Image* image = |