diff --git a/src/stream_base-inl.h b/src/stream_base-inl.h index 95152e34915853..9660cc386cef82 100644 --- a/src/stream_base-inl.h +++ b/src/stream_base-inl.h @@ -4,6 +4,7 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "async_wrap-inl.h" +#include "base_object-inl.h" #include "node.h" #include "stream_base.h" #include "v8.h" @@ -31,9 +32,10 @@ StreamReq* StreamReq::FromObject(v8::Local req_wrap_obj) { } void StreamReq::Dispose() { - std::unique_ptr ptr(this); + BaseObjectPtr destroy_me{GetAsyncWrap()}; object()->SetAlignedPointerInInternalField( StreamReq::kStreamReqField, nullptr); + destroy_me->Detach(); } v8::Local StreamReq::object() {