diff options
author | Anna Henningsen <anna@addaleax.net> | 2018-10-24 10:56:26 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2018-10-27 10:16:55 +0200 |
commit | 5c5bb36b742e45eba8d587412bf33977aa00cc02 (patch) | |
tree | 6f49c2a47a8196f9cd5cd4316545b00e8035e487 | |
parent | 482b56ae60bb14588ee57dd92b48158d5f7c2f23 (diff) | |
download | android-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>
-rw-r--r-- | src/env-inl.h | 8 | ||||
-rw-r--r-- | src/env.h | 2 |
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_; } @@ -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); |