Index: net/proxy/mojo_proxy_resolver_factory_impl.cc |
diff --git a/net/proxy/mojo_proxy_resolver_factory_impl.cc b/net/proxy/mojo_proxy_resolver_factory_impl.cc |
index 1a701c3ca88ecda546ff11e1e2703980e2fed0e7..89af70d138b6c8711ebd25fed1378dea927a4378 100644 |
--- a/net/proxy/mojo_proxy_resolver_factory_impl.cc |
+++ b/net/proxy/mojo_proxy_resolver_factory_impl.cc |
@@ -9,7 +9,6 @@ |
#include "base/macros.h" |
#include "base/memory/ptr_util.h" |
-#include "base/stl_util.h" |
#include "mojo/public/cpp/bindings/strong_binding.h" |
#include "net/base/net_errors.h" |
#include "net/proxy/mojo_proxy_resolver_impl.h" |
@@ -92,7 +91,6 @@ MojoProxyResolverFactoryImpl::MojoProxyResolverFactoryImpl() |
: MojoProxyResolverFactoryImpl(ProxyResolverV8TracingFactory::Create()) {} |
MojoProxyResolverFactoryImpl::~MojoProxyResolverFactoryImpl() { |
- base::STLDeleteElements(&jobs_); |
} |
void MojoProxyResolverFactoryImpl::CreateResolver( |
@@ -101,16 +99,18 @@ void MojoProxyResolverFactoryImpl::CreateResolver( |
interfaces::ProxyResolverFactoryRequestClientPtr client) { |
// The Job will call RemoveJob on |this| when either the create request |
// finishes or |request| or |client| encounters a connection error. |
- jobs_.insert(new Job( |
+ std::unique_ptr<Job> job = base::MakeUnique<Job>( |
this, ProxyResolverScriptData::FromUTF8(pac_script.To<std::string>()), |
proxy_resolver_impl_factory_.get(), std::move(request), |
- std::move(client))); |
+ std::move(client)); |
+ Job* job_ptr = job.get(); |
+ jobs_[job_ptr] = std::move(job); |
} |
void MojoProxyResolverFactoryImpl::RemoveJob(Job* job) { |
- size_t erased = jobs_.erase(job); |
- DCHECK_EQ(1u, erased); |
- delete job; |
+ auto it = jobs_.find(job); |
+ DCHECK(it != jobs_.end()); |
+ jobs_.erase(it); |
} |
} // namespace net |