summaryrefslogtreecommitdiff
path: root/src/api/hooks.cc
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-02-24 21:52:14 +0100
committerAnna Henningsen <anna@addaleax.net>2019-03-05 22:40:00 +0100
commitc2f620ab76c3e42fa1fcdfde82aba7bcba3031e9 (patch)
tree05ae336d10e36944f1d65a7f7d72aeb12f58c6b6 /src/api/hooks.cc
parentcc4e8e0696ffd5813df9cb50af7b47c27aaf2712 (diff)
downloadandroid-node-v8-c2f620ab76c3e42fa1fcdfde82aba7bcba3031e9.tar.gz
android-node-v8-c2f620ab76c3e42fa1fcdfde82aba7bcba3031e9.tar.bz2
android-node-v8-c2f620ab76c3e42fa1fcdfde82aba7bcba3031e9.zip
src: refactor `Environment::GetCurrent(isolate)` usage
Do not require an explicit `HandleScope`, or the ability to create one, when using `Environment::GetCurrent()`. `isolate->InContext()` is used as an indicator that it is probably okay to create a `HandleScope`, see also the short discussion in https://github.com/nodejs/node/pull/25775#pullrequestreview-197371049. PR-URL: https://github.com/nodejs/node/pull/26376 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/api/hooks.cc')
-rw-r--r--src/api/hooks.cc11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/api/hooks.cc b/src/api/hooks.cc
index b54292638d..aa647778d5 100644
--- a/src/api/hooks.cc
+++ b/src/api/hooks.cc
@@ -11,6 +11,7 @@ using v8::Integer;
using v8::Isolate;
using v8::Local;
using v8::Object;
+using v8::SealHandleScope;
using v8::String;
using v8::Value;
using v8::NewStringType;
@@ -88,16 +89,12 @@ void RemoveEnvironmentCleanupHook(Isolate* isolate,
}
async_id AsyncHooksGetExecutionAsyncId(Isolate* isolate) {
- // Environment::GetCurrent() allocates a Local<> handle.
- HandleScope handle_scope(isolate);
Environment* env = Environment::GetCurrent(isolate);
if (env == nullptr) return -1;
return env->execution_async_id();
}
async_id AsyncHooksGetTriggerAsyncId(Isolate* isolate) {
- // Environment::GetCurrent() allocates a Local<> handle.
- HandleScope handle_scope(isolate);
Environment* env = Environment::GetCurrent(isolate);
if (env == nullptr) return -1;
return env->trigger_async_id();
@@ -119,7 +116,9 @@ async_context EmitAsyncInit(Isolate* isolate,
Local<Object> resource,
Local<String> name,
async_id trigger_async_id) {
- HandleScope handle_scope(isolate);
+#ifdef DEBUG
+ SealHandleScope handle_scope(isolate);
+#endif
Environment* env = Environment::GetCurrent(isolate);
CHECK_NOT_NULL(env);
@@ -140,8 +139,6 @@ async_context EmitAsyncInit(Isolate* isolate,
}
void EmitAsyncDestroy(Isolate* isolate, async_context asyncContext) {
- // Environment::GetCurrent() allocates a Local<> handle.
- HandleScope handle_scope(isolate);
AsyncWrap::EmitDestroy(
Environment::GetCurrent(isolate), asyncContext.async_id);
}