| 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
|
|
|