Don't leak URLFetcher
authorCheng Zhao <zcbenz@gmail.com>
Tue, 16 Jun 2015 09:08:53 +0000 (17:08 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 16 Jun 2015 09:09:25 +0000 (17:09 +0800)
atom/browser/net/url_request_fetch_job.cc
atom/browser/net/url_request_fetch_job.h

index 081e85f..3f4ef06 100644 (file)
@@ -24,14 +24,12 @@ URLRequestFetchJob::URLRequestFetchJob(
 URLRequestFetchJob::~URLRequestFetchJob() {}
 
 void URLRequestFetchJob::Start() {
-  net::URLFetcher* fetcher = net::URLFetcher::Create(url_,
-                                                     net::URLFetcher::GET,
-                                                     this);
+  fetcher_.reset(net::URLFetcher::Create(url_, net::URLFetcher::GET, this));
   auto context = AtomBrowserContext::Get()->url_request_context_getter();
-  fetcher->SetRequestContext(context);
-  fetcher->SaveResponseWithWriter(scoped_ptr<net::URLFetcherResponseWriter>(
+  fetcher_->SetRequestContext(context);
+  fetcher_->SaveResponseWithWriter(scoped_ptr<net::URLFetcherResponseWriter>(
       this));
-  fetcher->Start();
+  fetcher_->Start();
 }
 
 void URLRequestFetchJob::Kill() {
index e955341..69726f9 100644 (file)
@@ -45,6 +45,7 @@ class URLRequestFetchJob : public net::URLRequestJob,
 
  private:
   GURL url_;
+  scoped_ptr<net::URLFetcher> fetcher_;
   scoped_refptr<net::DrainableIOBuffer> buffer_;
 
   base::WeakPtrFactory<URLRequestFetchJob> weak_ptr_factory_;