summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-08 18:43:53 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-08 18:43:53 +0000
commit08816d0d2f0373d066558e3b60783924f6b69aa3 (patch)
treed21f88a0446a55585652ed93a252a84a9edf66fc
parent19834727644cc3ad7c4d60f2d82b94185ac10106 (diff)
downloadchromium_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.cc8
-rw-r--r--chrome/browser/extensions/extensions_service_unittest.cc7
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: