From 87419bea0381a58eec05fdd8de4e42ae758340db Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Thu, 21 Feb 2019 19:22:44 +0100 Subject: [PATCH 1/2] src: simplify native immediate by using v8::Global Unlike `node::Persistent`, `v8::Global` has move semantics and can be used directly in STL containers. --- src/env-inl.h | 4 ++-- src/env.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/env-inl.h b/src/env-inl.h index aca817605673fd..09c8d06da2b972 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -617,8 +617,8 @@ void Environment::CreateImmediate(native_immediate_callback cb, native_immediate_callbacks_.push_back({ cb, data, - std::unique_ptr>(obj.IsEmpty() ? - nullptr : new Persistent(isolate_, obj)), + obj.IsEmpty() ? v8::Global() : + v8::Global(isolate_, obj), ref }); immediate_info()->count_inc(1); diff --git a/src/env.h b/src/env.h index 5f578dd54a9a7f..3732de38f63a42 100644 --- a/src/env.h +++ b/src/env.h @@ -1092,7 +1092,7 @@ class Environment { struct NativeImmediateCallback { native_immediate_callback cb_; void* data_; - std::unique_ptr> keep_alive_; + v8::Global keep_alive_; bool refed_; }; std::vector native_immediate_callbacks_; From 06d3b4c20e2186eca834cc0a7b6ed015d2281d8d Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Thu, 21 Feb 2019 23:29:21 +0100 Subject: [PATCH 2/2] fixup! src: simplify native immediate by using v8::Global --- src/env-inl.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/env-inl.h b/src/env-inl.h index 09c8d06da2b972..0e77963128077b 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -617,8 +617,7 @@ void Environment::CreateImmediate(native_immediate_callback cb, native_immediate_callbacks_.push_back({ cb, data, - obj.IsEmpty() ? v8::Global() : - v8::Global(isolate_, obj), + v8::Global(isolate_, obj), ref }); immediate_info()->count_inc(1);