diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-08 18:43:53 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-08 18:43:53 +0000 |
commit | 08816d0d2f0373d066558e3b60783924f6b69aa3 (patch) | |
tree | d21f88a0446a55585652ed93a252a84a9edf66fc | |
parent | 19834727644cc3ad7c4d60f2d82b94185ac10106 (diff) | |
download | chromium_src-08816d0d2f0373d066558e3b60783924f6b69aa3.zip chromium_src-08816d0d2f0373d066558e3b60783924f6b69aa3.tar.gz chromium_src-08816d0d2f0373d066558e3b60783924f6b69aa3.tar.bz2 |
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
-rw-r--r-- | chrome/browser/extensions/extensions_service.cc | 8 | ||||
-rw-r--r-- | chrome/browser/extensions/extensions_service_unittest.cc | 7 |
2 files changed, 9 insertions, 6 deletions
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<Value> 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: |