From cad4857dd300369cfce69ab30035529c2b4c8157 Mon Sep 17 00:00:00 2001 From: Nitish Sakhawalkar Date: Wed, 31 Oct 2018 15:05:38 -0700 Subject: [PATCH] Update the callback isolate --- atom/common/api/atom_bindings.cc | 25 +++++++++++++------------ atom/common/api/atom_bindings.h | 1 - 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/atom/common/api/atom_bindings.cc b/atom/common/api/atom_bindings.cc index 7bbc8d3a257ff..c75f607c38ecf 100644 --- a/atom/common/api/atom_bindings.cc +++ b/atom/common/api/atom_bindings.cc @@ -222,27 +222,28 @@ v8::Local AtomBindings::GetSystemMemoryInfo(v8::Isolate* isolate, v8::Local AtomBindings::GetProcessMemoryInfo( v8::Isolate* isolate) { scoped_refptr promise = new util::Promise(isolate); - node::Environment* env = node::Environment::GetCurrent(isolate); + memory_instrumentation::MemoryInstrumentation::GetInstance() - ->RequestGlobalDumpForPid(base::GetCurrentProcId(), - std::vector(), - base::Bind(&AtomBindings::DidReceiveMemoryDump, - base::Unretained(env), promise)); + ->RequestGlobalDumpForPid( + base::GetCurrentProcId(), std::vector(), + base::Bind(&AtomBindings::DidReceiveMemoryDump, promise)); return promise->GetHandle(); } // static void AtomBindings::DidReceiveMemoryDump( - node::Environment* env, scoped_refptr promise, bool success, std::unique_ptr global_dump) { - // Enter Node environment. - mate::Locker locker(env->isolate()); - v8::HandleScope handle_scope(env->isolate()); - v8::MicrotasksScope script_scope(env->isolate(), + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + if (!isolate) + return; + + mate::Locker locker(isolate); + v8::HandleScope handle_scope(isolate); + v8::MicrotasksScope script_scope(isolate, v8::MicrotasksScope::kRunMicrotasks); - v8::Context::Scope context_scope(env->context()); + v8::Context::Scope context_scope(isolate->GetCurrentContext()); if (!success) { promise->RejectWithErrorMessage("Failed to create memory dump"); @@ -253,7 +254,7 @@ void AtomBindings::DidReceiveMemoryDump( for (const memory_instrumentation::GlobalMemoryDump::ProcessDump& dump : global_dump->process_dumps()) { if (base::GetCurrentProcId() == dump.pid()) { - mate::Dictionary dict = mate::Dictionary::CreateEmpty(env->isolate()); + mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); const auto& osdump = dump.os_dump(); #if defined(OS_LINUX) || defined(OS_WIN) dict.Set("residentSet", osdump.resident_set_kb); diff --git a/atom/common/api/atom_bindings.h b/atom/common/api/atom_bindings.h index 8dbfb4b65a3be..3f15d0e37e50f 100644 --- a/atom/common/api/atom_bindings.h +++ b/atom/common/api/atom_bindings.h @@ -63,7 +63,6 @@ class AtomBindings { static void OnCallNextTick(uv_async_t* handle); static void DidReceiveMemoryDump( - node::Environment* env, scoped_refptr promise, bool success, std::unique_ptr dump);