diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-09-21 02:15:32 +0200 |
---|---|---|
committer | Benjamin Coe <bencoe@google.com> | 2019-09-21 13:53:25 -0700 |
commit | e74f30894c46c94aa1329e8462f811b8d5e54a91 (patch) | |
tree | 988a74859dd65173b0fd4230088227687a4db57f /src | |
parent | f634f37be0f9464ab6e5318cd88af89cd416b5a6 (diff) | |
download | android-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.cc | 4 |
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(); |