Fix a memory leak due to the context not being deleted in the
unhappy cases.
BUG=281728
Review URL: https://chromiumcodereview.appspot.com/23567009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221033 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/component_updater/component_updater_service.cc b/chrome/browser/component_updater/component_updater_service.cc
index f284542..532a375e 100644
--- a/chrome/browser/component_updater/component_updater_service.cc
+++ b/chrome/browser/component_updater/component_updater_service.cc
@@ -848,9 +848,11 @@
void CrxUpdateService::OnURLFetchComplete(const net::URLFetcher* source,
CRXContext* context) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ scoped_ptr<CRXContext> crx_context(context);
int error_code = net::OK;
- CrxUpdateItem* crx = FindUpdateItemById(context->id);
+ CrxUpdateItem* crx = FindUpdateItemById(crx_context->id);
DCHECK(crx->status == CrxUpdateItem::kDownloadingDiff ||
crx->status == CrxUpdateItem::kDownloading);
@@ -907,7 +909,7 @@
FROM_HERE,
base::Bind(&CrxUpdateService::Install,
base::Unretained(this),
- context,
+ crx_context.release(),
temp_crx_path),
base::TimeDelta::FromMilliseconds(config_->StepDelay()));
}