summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-09-21 02:15:32 +0200
committerBenjamin Coe <bencoe@google.com>2019-09-21 13:53:25 -0700
commite74f30894c46c94aa1329e8462f811b8d5e54a91 (patch)
tree988a74859dd65173b0fd4230088227687a4db57f /src
parentf634f37be0f9464ab6e5318cd88af89cd416b5a6 (diff)
downloadandroid-node-v8-e74f30894c46c94aa1329e8462f811b8d5e54a91.tar.gz
android-node-v8-e74f30894c46c94aa1329e8462f811b8d5e54a91.tar.bz2
android-node-v8-e74f30894c46c94aa1329e8462f811b8d5e54a91.zip
src: fix closing weak `HandleWrap`s on GC
In 0af62aae07ccbb3783030367ffe4, this was overlooked, with it possibly leading to hard crashes. Refs: https://github.com/nodejs/node/pull/29317 PR-URL: https://github.com/nodejs/node/pull/29640 Reviewed-By: Ben Coe <bencoe@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/handle_wrap.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/handle_wrap.cc b/src/handle_wrap.cc
index 8ed6b2948d..888640e949 100644
--- a/src/handle_wrap.cc
+++ b/src/handle_wrap.cc
@@ -72,11 +72,11 @@ void HandleWrap::Close(Local<Value> close_callback) {
if (state_ != kInitialized)
return;
- CHECK_EQ(false, persistent().IsEmpty());
uv_close(handle_, OnClose);
state_ = kClosing;
- if (!close_callback.IsEmpty() && close_callback->IsFunction()) {
+ if (!close_callback.IsEmpty() && close_callback->IsFunction() &&
+ !persistent().IsEmpty()) {
object()->Set(env()->context(),
env()->handle_onclose_symbol(),
close_callback).Check();