From 08816d0d2f0373d066558e3b60783924f6b69aa3 Mon Sep 17 00:00:00 2001 From: "aa@chromium.org" Date: Mon, 8 Dec 2008 18:43:53 +0000 Subject: Fix a leak in ExtensionsService and another in ExtensionsServiceTest. Review URL: http://codereview.chromium.org/13610 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6524 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/extensions/extensions_service.cc | 8 +++++--- chrome/browser/extensions/extensions_service_unittest.cc | 7 ++++--- 2 files changed, 9 insertions(+), 6 deletions(-) (limited to 'chrome/browser') diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc index a9810c0..c1607c0 100644 --- a/chrome/browser/extensions/extensions_service.cc +++ b/chrome/browser/extensions/extensions_service.cc @@ -48,9 +48,10 @@ MessageLoop* ExtensionsService::GetMessageLoop() { } void ExtensionsService::OnExtensionsLoadedFromDirectory( - ExtensionList* extensions) { - extensions_.assign(extensions->begin(), extensions->end()); - delete extensions; + ExtensionList* new_extensions) { + extensions_.insert(extensions_.end(), new_extensions->begin(), + new_extensions->end()); + delete new_extensions; // TODO(aa): Notify extensions are loaded. } @@ -91,6 +92,7 @@ bool ExtensionsServiceBackend::LoadExtensionsFromDirectory( continue; } + scoped_ptr scoped_root(root); if (!root->IsType(Value::TYPE_DICTIONARY)) { ReportExtensionLoadError(frontend.get(), child_path, Extension::kInvalidManifestError); diff --git a/chrome/browser/extensions/extensions_service_unittest.cc b/chrome/browser/extensions/extensions_service_unittest.cc index b3e4880..039f5eb 100644 --- a/chrome/browser/extensions/extensions_service_unittest.cc +++ b/chrome/browser/extensions/extensions_service_unittest.cc @@ -45,9 +45,10 @@ class ExtensionsServiceTestFrontend errors_.push_back(message); } - virtual void OnExtensionsLoadedFromDirectory(ExtensionList* extensions) { - extensions_.assign(extensions->begin(), extensions->end()); - delete extensions; + virtual void OnExtensionsLoadedFromDirectory(ExtensionList* new_extensions) { + extensions_.insert(extensions_.end(), new_extensions->begin(), + new_extensions->end()); + delete new_extensions; } private: -- cgit v1.1