Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1502)

Unified Diff: test/cctest/profiler-extension.cc

Issue 2117343006: Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/cctest/profiler-extension.cc
diff --git a/test/cctest/profiler-extension.cc b/test/cctest/profiler-extension.cc
index 024cc9c635a3d1b97d9c474a004b866e8598507b..38008685146265bda64f65a10a47185ba776eee4 100644
--- a/test/cctest/profiler-extension.cc
+++ b/test/cctest/profiler-extension.cc
@@ -33,7 +33,18 @@
namespace v8 {
namespace internal {
-v8::CpuProfile* ProfilerExtension::last_profile = NULL;
+ProfilerExtension::Scope::Scope(v8::Isolate* isolate) {
+ DCHECK(!profiler_);
+ profiler_ = v8::CpuProfiler::New(isolate);
+}
+
+ProfilerExtension::Scope::~Scope() {
+ profiler_->Dispose();
+ profiler_ = nullptr;
+}
+
+v8::CpuProfiler* ProfilerExtension::Scope::profiler_ = nullptr;
+v8::CpuProfile* ProfilerExtension::last_profile = nullptr;
const char* ProfilerExtension::kSource =
"native function startProfiling();"
"native function stopProfiling();"
@@ -58,24 +69,22 @@ v8::Local<v8::FunctionTemplate> ProfilerExtension::GetNativeFunctionTemplate(
void ProfilerExtension::StartProfiling(
const v8::FunctionCallbackInfo<v8::Value>& args) {
- last_profile = NULL;
- v8::CpuProfiler* cpu_profiler = args.GetIsolate()->GetCpuProfiler();
- cpu_profiler->StartProfiling((args.Length() > 0)
- ? args[0].As<v8::String>()
- : v8::String::Empty(args.GetIsolate()));
+ last_profile = nullptr;
+ Scope::profiler_->StartProfiling((args.Length() > 0)
+ ? args[0].As<v8::String>()
+ : v8::String::Empty(args.GetIsolate()));
}
void ProfilerExtension::StopProfiling(
const v8::FunctionCallbackInfo<v8::Value>& args) {
- v8::CpuProfiler* cpu_profiler = args.GetIsolate()->GetCpuProfiler();
- last_profile = cpu_profiler->StopProfiling((args.Length() > 0)
- ? args[0].As<v8::String>()
- : v8::String::Empty(args.GetIsolate()));
+ last_profile = Scope::profiler_->StopProfiling(
+ (args.Length() > 0) ? args[0].As<v8::String>()
+ : v8::String::Empty(args.GetIsolate()));
}
void ProfilerExtension::CollectSample(
const v8::FunctionCallbackInfo<v8::Value>& args) {
- args.GetIsolate()->GetCpuProfiler()->CollectSample();
+ Scope::profiler_->CollectSample();
}
} // namespace internal

Powered by Google App Engine
This is Rietveld 408576698