summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-10-24 10:56:26 +0200
committerAnna Henningsen <anna@addaleax.net>2018-10-27 10:16:55 +0200
commit5c5bb36b742e45eba8d587412bf33977aa00cc02 (patch)
tree6f49c2a47a8196f9cd5cd4316545b00e8035e487 /src
parent482b56ae60bb14588ee57dd92b48158d5f7c2f23 (diff)
downloadandroid-node-v8-5c5bb36b742e45eba8d587412bf33977aa00cc02.tar.gz
android-node-v8-5c5bb36b742e45eba8d587412bf33977aa00cc02.tar.bz2
android-node-v8-5c5bb36b742e45eba8d587412bf33977aa00cc02.zip
src: avoid extra `Persistent` in `DefaultTriggerAsyncIdScope`
Instead of getting a reference to the main `AliasedBuffer`, which would always unnecesarily allocate and destroy a `Persistent` handle, store and use a reference to the owning object. PR-URL: https://github.com/nodejs/node/pull/23844 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Matheus Marchini <mat@mmarchini.me> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Diffstat (limited to 'src')
-rw-r--r--src/env-inl.h8
-rw-r--r--src/env.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/env-inl.h b/src/env-inl.h
index 4f99bc9ec0..f0a8f2631f 100644
--- a/src/env-inl.h
+++ b/src/env-inl.h
@@ -186,20 +186,20 @@ inline void Environment::AsyncHooks::clear_async_id_stack() {
inline Environment::AsyncHooks::DefaultTriggerAsyncIdScope
::DefaultTriggerAsyncIdScope(Environment* env,
double default_trigger_async_id)
- : async_id_fields_ref_(env->async_hooks()->async_id_fields()) {
+ : async_hooks_(env->async_hooks()) {
if (env->async_hooks()->fields()[AsyncHooks::kCheck] > 0) {
CHECK_GE(default_trigger_async_id, 0);
}
old_default_trigger_async_id_ =
- async_id_fields_ref_[AsyncHooks::kDefaultTriggerAsyncId];
- async_id_fields_ref_[AsyncHooks::kDefaultTriggerAsyncId] =
+ async_hooks_->async_id_fields()[AsyncHooks::kDefaultTriggerAsyncId];
+ async_hooks_->async_id_fields()[AsyncHooks::kDefaultTriggerAsyncId] =
default_trigger_async_id;
}
inline Environment::AsyncHooks::DefaultTriggerAsyncIdScope
::~DefaultTriggerAsyncIdScope() {
- async_id_fields_ref_[AsyncHooks::kDefaultTriggerAsyncId] =
+ async_hooks_->async_id_fields()[AsyncHooks::kDefaultTriggerAsyncId] =
old_default_trigger_async_id_;
}
diff --git a/src/env.h b/src/env.h
index af2dbd32a5..82f68f1b11 100644
--- a/src/env.h
+++ b/src/env.h
@@ -490,7 +490,7 @@ class Environment {
~DefaultTriggerAsyncIdScope();
private:
- AliasedBuffer<double, v8::Float64Array> async_id_fields_ref_;
+ AsyncHooks* async_hooks_;
double old_default_trigger_async_id_;
DISALLOW_COPY_AND_ASSIGN(DefaultTriggerAsyncIdScope);