src: simplify MessagePort
construction code a bit
Using `ASSIGN_OR_RETURN_UNWRAP` would return if the created `MessagePort` object had no internal fields. That would be a bug, so switch to a checked conversion instead. PR-URL: https://github.com/nodejs/node/pull/23036 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
This commit is contained in:
parent
3ea05883c8
commit
d102a85cd9
@ -483,14 +483,14 @@ MessagePort* MessagePort::New(
|
|||||||
Local<Function> ctor;
|
Local<Function> ctor;
|
||||||
if (!GetMessagePortConstructor(env, context).ToLocal(&ctor))
|
if (!GetMessagePortConstructor(env, context).ToLocal(&ctor))
|
||||||
return nullptr;
|
return nullptr;
|
||||||
MessagePort* port = nullptr;
|
|
||||||
|
|
||||||
// Construct a new instance, then assign the listener instance and possibly
|
// Construct a new instance, then assign the listener instance and possibly
|
||||||
// the MessagePortData to it.
|
// the MessagePortData to it.
|
||||||
Local<Object> instance;
|
Local<Object> instance;
|
||||||
if (!ctor->NewInstance(context).ToLocal(&instance))
|
if (!ctor->NewInstance(context).ToLocal(&instance))
|
||||||
return nullptr;
|
return nullptr;
|
||||||
ASSIGN_OR_RETURN_UNWRAP(&port, instance, nullptr);
|
MessagePort* port = Unwrap<MessagePort>(instance);
|
||||||
|
CHECK_NOT_NULL(port);
|
||||||
if (data) {
|
if (data) {
|
||||||
port->Detach();
|
port->Detach();
|
||||||
port->data_ = std::move(data);
|
port->data_ = std::move(data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user