summaryrefslogtreecommitdiff
path: root/test/addons
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-11-02 20:41:48 +0100
committerAnna Henningsen <anna@addaleax.net>2019-11-05 23:59:02 +0100
commit5b2067c6ca17340204c1de283baead174b071355 (patch)
treef776bb8ae6956365d1daf81ebb090b850cba74b3 /test/addons
parentde119131bc87cf4168c949ecbbf1c1504f96a499 (diff)
downloadandroid-node-v8-5b2067c6ca17340204c1de283baead174b071355.tar.gz
android-node-v8-5b2067c6ca17340204c1de283baead174b071355.tar.bz2
android-node-v8-5b2067c6ca17340204c1de283baead174b071355.zip
src: deprecate two- and one-argument AtExit()
Using `AtExit()` without an `Environment*` pointer or providing an argument is almost always a sign of improperly relying on global state and/or using `AtExit()` as an addon when the addon-targeting `AddEnvironmentCleanupHook()` would be the better choice. Deprecate those variants. This also updates the addon docs to refer to `AddEnvironmentCleanupHook()` rather than `AtExit()`. PR-URL: https://github.com/nodejs/node/pull/30227 Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/addons')
-rw-r--r--test/addons/at-exit/binding.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/test/addons/at-exit/binding.cc b/test/addons/at-exit/binding.cc
index 3a27bcd7c3..b091c65ed9 100644
--- a/test/addons/at-exit/binding.cc
+++ b/test/addons/at-exit/binding.cc
@@ -3,7 +3,11 @@
#include <node.h>
#include <v8.h>
+// TODO(addaleax): Maybe merge this file with the cctest for AtExit()?
+
using node::AtExit;
+using node::Environment;
+using node::GetCurrentEnvironment;
using v8::HandleScope;
using v8::Isolate;
using v8::Local;
@@ -46,9 +50,10 @@ NODE_C_DTOR(sanity_check) {
}
void init(Local<Object> exports) {
- AtExit(at_exit_cb1, exports->GetIsolate());
- AtExit(at_exit_cb2, cookie);
- AtExit(at_exit_cb2, cookie);
+ Environment* env = GetCurrentEnvironment(exports->CreationContext());
+ AtExit(env, at_exit_cb1, exports->GetIsolate());
+ AtExit(env, at_exit_cb2, cookie);
+ AtExit(env, at_exit_cb2, cookie);
}
NODE_MODULE(NODE_GYP_MODULE_NAME, init)