diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-18 05:16:25 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-18 05:16:25 +0000 |
commit | 5380451c17882b56cf0b5fe7906201ee05abbffd (patch) | |
tree | 0570d3e8f88b6fc4834350bad7ac17d9bac9b8f9 /chrome/test/base/module_system_test.cc | |
parent | c2b8f751788a4d8684dd6e2ae516d5e00afbd37c (diff) | |
download | chromium_src-5380451c17882b56cf0b5fe7906201ee05abbffd.zip chromium_src-5380451c17882b56cf0b5fe7906201ee05abbffd.tar.gz chromium_src-5380451c17882b56cf0b5fe7906201ee05abbffd.tar.bz2 |
Fix ModuleSystemTest memory leaks and remove suppressions.
R=thakis@chromium.org
BUG=250531
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/17175004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206902 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/base/module_system_test.cc')
-rw-r--r-- | chrome/test/base/module_system_test.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/chrome/test/base/module_system_test.cc b/chrome/test/base/module_system_test.cc index 39d328b..8878a9c 100644 --- a/chrome/test/base/module_system_test.cc +++ b/chrome/test/base/module_system_test.cc @@ -38,22 +38,24 @@ class FailsOnException : public ModuleSystem::ExceptionHandler { class V8ExtensionConfigurator { public: V8ExtensionConfigurator() - : safe_builtins_(extensions::SafeBuiltins::CreateV8Extension()) { - v8::RegisterExtension(safe_builtins_); - names_.push_back(safe_builtins_->name()); + : safe_builtins_(extensions::SafeBuiltins::CreateV8Extension()), + names_(1, safe_builtins_->name()), + configuration_(new v8::ExtensionConfiguration( + names_.size(), vector_as_array(&names_))) { + v8::RegisterExtension(safe_builtins_.get()); } - v8::ExtensionConfiguration* NewConfiguration() { - return new v8::ExtensionConfiguration(names_.size(), - vector_as_array(&names_)); + v8::ExtensionConfiguration* GetConfiguration() { + return configuration_.get(); } private: - v8::Extension* safe_builtins_; + scoped_ptr<v8::Extension> safe_builtins_; std::vector<const char*> names_; + scoped_ptr<v8::ExtensionConfiguration> configuration_; }; -base::LazyInstance<V8ExtensionConfigurator> g_v8_extension_configurator = +base::LazyInstance<V8ExtensionConfigurator>::Leaky g_v8_extension_configurator = LAZY_INSTANCE_INITIALIZER; } // namespace @@ -123,7 +125,7 @@ ModuleSystemTest::ModuleSystemTest() new extensions::ChromeV8Context( v8::Context::New( isolate_, - g_v8_extension_configurator.Get().NewConfiguration()), + g_v8_extension_configurator.Get().GetConfiguration()), NULL, // WebFrame NULL, // Extension extensions::Feature::UNSPECIFIED_CONTEXT)), |