summaryrefslogtreecommitdiffstats
path: root/chrome/test/base/module_system_test.cc
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-18 05:16:25 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-18 05:16:25 +0000
commit5380451c17882b56cf0b5fe7906201ee05abbffd (patch)
tree0570d3e8f88b6fc4834350bad7ac17d9bac9b8f9 /chrome/test/base/module_system_test.cc
parentc2b8f751788a4d8684dd6e2ae516d5e00afbd37c (diff)
downloadchromium_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.cc20
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)),