From e5176d6a0ac0cec1e162d6b9079746c84d0712ba Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 18 Apr 2014 17:25:22 +0800 Subject: [PATCH] Use BrowserV8Locker when possible. --- atom/browser/api/atom_api_power_monitor.h | 2 +- atom/common/api/atom_api_event_emitter.cc | 13 +++---------- atom/common/node_bindings.cc | 5 ++--- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/atom/browser/api/atom_api_power_monitor.h b/atom/browser/api/atom_api_power_monitor.h index 165efbd2ff93..ada2b8332bc5 100644 --- a/atom/browser/api/atom_api_power_monitor.h +++ b/atom/browser/api/atom_api_power_monitor.h @@ -20,7 +20,7 @@ class PowerMonitor : public mate::EventEmitter, static mate::Handle Create(v8::Isolate* isolate); protected: - explicit PowerMonitor(); + PowerMonitor(); virtual ~PowerMonitor(); // base::PowerObserver implementations: diff --git a/atom/common/api/atom_api_event_emitter.cc b/atom/common/api/atom_api_event_emitter.cc index 899ee3cd884e..a358fedc2003 100644 --- a/atom/common/api/atom_api_event_emitter.cc +++ b/atom/common/api/atom_api_event_emitter.cc @@ -7,6 +7,7 @@ #include #include "atom/browser/api/atom_api_event.h" +#include "atom/common/browser_v8_locker.h" #include "atom/common/v8/native_type_conversions.h" #include "base/logging.h" @@ -21,13 +22,9 @@ EventEmitter::EventEmitter(v8::Handle wrapper) { } EventEmitter::~EventEmitter() { - // Use Locker in browser process. - scoped_ptr locker; - if (node::g_standalone_mode) - locker.reset(new v8::Locker(node_isolate)); - // Clear the aligned pointer, it should have been done by ObjectWrap but // somehow node v0.11.x changed this behaviour. + BrowserV8Locker locker(node_isolate); v8::HandleScope handle_scope(node_isolate); handle()->SetAlignedPointerInInternalField(0, NULL); } @@ -38,11 +35,7 @@ bool EventEmitter::Emit(const std::string& name) { } bool EventEmitter::Emit(const std::string& name, base::ListValue* args) { - // Use Locker in browser process. - scoped_ptr locker; - if (node::g_standalone_mode) - locker.reset(new v8::Locker(node_isolate)); - + BrowserV8Locker locker(node_isolate); v8::HandleScope handle_scope(node_isolate); v8::Handle context = v8::Context::GetCurrent(); diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index 380419b6b7f0..a3b15d97ae27 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -7,6 +7,7 @@ #include #include +#include "atom/common/browser_v8_locker.h" #include "atom/common/v8/native_type_conversions.h" #include "base/command_line.h" #include "base/message_loop/message_loop.h" @@ -199,9 +200,7 @@ void NodeBindings::UvRunOnce() { DCHECK(!is_browser_ || BrowserThread::CurrentlyOn(BrowserThread::UI)); // Use Locker in browser process. - scoped_ptr locker; - if (is_browser_) - locker.reset(new v8::Locker(node_isolate)); + BrowserV8Locker locker(node_isolate); v8::HandleScope handle_scope(node_isolate);