src: use unique_ptr for obj in SetWeak lambda
PR-URL: https://github.com/nodejs/node/pull/23117 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
1be804d625
commit
7ac109df10
@ -95,13 +95,12 @@ void BaseObject::MakeWeak() {
|
||||
persistent_handle_.SetWeak(
|
||||
this,
|
||||
[](const v8::WeakCallbackInfo<BaseObject>& data) {
|
||||
BaseObject* obj = data.GetParameter();
|
||||
std::unique_ptr<BaseObject> obj(data.GetParameter());
|
||||
// Clear the persistent handle so that ~BaseObject() doesn't attempt
|
||||
// to mess with internal fields, since the JS object may have
|
||||
// transitioned into an invalid state.
|
||||
// Refs: https://github.com/nodejs/node/issues/18897
|
||||
obj->persistent_handle_.Reset();
|
||||
delete obj;
|
||||
}, v8::WeakCallbackType::kParameter);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user