66#include " LibuvChildProcess.h"
77
88hx::asys::libuv::system::LibuvChildProcess::LibuvChildProcess ()
9- : request(new uv_process_t ())
10- , options(new uv_process_options_t ())
11- , arguments(new std::vector<char *>())
12- , environment(new std::vector<char *>())
13- , containers(new std::vector<uv_stdio_container_t >(3 ))
14- , currentExitCode(new std::optional<int64_t >())
9+ : request(std::move(std::make_unique<uv_process_t >()))
10+ , options(std::move(std::make_unique<uv_process_options_t >()))
1511 , exitCallback(null())
1612 , closeCallback(null())
13+ , containers(3 )
1714{
18- HX_OBJ_WB_NEW_MARKED_OBJECT (this );
15+ hx::GCSetFinalizer (this , [](hx::Object* obj) -> void {
16+ reinterpret_cast <LibuvChildProcess*>(obj)->~LibuvChildProcess ();
17+ });
1918}
2019
2120hx::asys::Pid hx::asys::libuv::system::LibuvChildProcess::pid ()
@@ -70,7 +69,7 @@ void hx::asys::libuv::system::LibuvChildProcess::sendSignal(hx::EnumBase signal,
7069 }
7170
7271 auto result = 0 ;
73- if ((result = uv_process_kill (request, signum)) < 0 )
72+ if ((result = uv_process_kill (request. get () , signum)) < 0 )
7473 {
7574 cbFailure (hx::asys::libuv::uv_err_to_enum (result));
7675 }
@@ -82,9 +81,9 @@ void hx::asys::libuv::system::LibuvChildProcess::sendSignal(hx::EnumBase signal,
8281
8382void hx::asys::libuv::system::LibuvChildProcess::exitCode (Dynamic cbSuccess, Dynamic cbFailure)
8483{
85- if (currentExitCode-> has_value ())
84+ if (currentExitCode. has_value ())
8685 {
87- cbSuccess (static_cast <int >(currentExitCode-> value ()));
86+ cbSuccess (static_cast <int >(currentExitCode. value ()));
8887 }
8988 else
9089 {
@@ -96,7 +95,7 @@ void hx::asys::libuv::system::LibuvChildProcess::close(Dynamic cbSuccess, Dynami
9695{
9796 closeCallback = cbSuccess.mPtr ;
9897
99- uv_close (reinterpret_cast <uv_handle_t *>(request), [](uv_handle_t * handle) {
98+ uv_close (reinterpret_cast <uv_handle_t *>(request. get () ), [](uv_handle_t * handle) {
10099 auto gcZone = hx::AutoGCZone ();
101100 auto process = std::unique_ptr<hx::RootedObject<hx::asys::libuv::system::LibuvChildProcess>>(reinterpret_cast <hx::RootedObject<hx::asys::libuv::system::LibuvChildProcess>*>(handle->data ));
102101 auto callback = Dynamic (process->rooted ->closeCallback );
0 commit comments