| Index: chrome/browser/extensions/api/gcd_private/privet_v3_session.cc
|
| diff --git a/chrome/browser/extensions/api/gcd_private/privet_v3_session.cc b/chrome/browser/extensions/api/gcd_private/privet_v3_session.cc
|
| index 8c22f78120c9f1b78209712abf40d7a1cae2af5a..adf66eb114f1b0f263bfeaadd097b0e93daa7463 100644
|
| --- a/chrome/browser/extensions/api/gcd_private/privet_v3_session.cc
|
| +++ b/chrome/browser/extensions/api/gcd_private/privet_v3_session.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| @@ -486,7 +487,7 @@ net::URLFetcher* PrivetV3Session::CreateFetcher(
|
| FetcherDelegate* fetcher =
|
| new FetcherDelegate(weak_ptr_factory_.GetWeakPtr(), callback);
|
| if (!orphaned)
|
| - fetchers_.push_back(fetcher);
|
| + fetchers_.push_back(base::WrapUnique(fetcher));
|
| net::URLFetcher* url_fetcher =
|
| fetcher->CreateURLFetcher(url, request_type, orphaned);
|
| url_fetcher->SetLoadFlags(url_fetcher->GetLoadFlags() |
|
| @@ -500,7 +501,14 @@ net::URLFetcher* PrivetV3Session::CreateFetcher(
|
| }
|
|
|
| void PrivetV3Session::DeleteFetcher(const FetcherDelegate* fetcher) {
|
| - fetchers_.erase(std::find(fetchers_.begin(), fetchers_.end(), fetcher));
|
| + for (std::vector<std::unique_ptr<FetcherDelegate>>::iterator iter =
|
| + fetchers_.begin();
|
| + iter != fetchers_.end(); ++iter) {
|
| + if (iter->get() == fetcher) {
|
| + fetchers_.erase(iter);
|
| + break;
|
| + }
|
| + }
|
| }
|
|
|
| void PrivetV3Session::Cancel() {
|
|
|