66#include " LibuvChildProcess.h"
77
88hx::asys::libuv::system::LibuvChildProcess::LibuvChildProcess ()
9- : request(std::move(std::make_unique<uv_process_t >()))
10- , options(std::move(std::make_unique<uv_process_options_t >()))
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 >())
1115 , exitCallback(null())
1216 , closeCallback(null())
13- , containers(3 )
1417{
15- hx::GCSetFinalizer (this , [](hx::Object* obj) -> void {
16- reinterpret_cast <LibuvChildProcess*>(obj)->~LibuvChildProcess ();
17- });
18+ HX_OBJ_WB_NEW_MARKED_OBJECT (this );
1819}
1920
2021hx::asys::Pid hx::asys::libuv::system::LibuvChildProcess::pid ()
@@ -69,7 +70,7 @@ void hx::asys::libuv::system::LibuvChildProcess::sendSignal(hx::EnumBase signal,
6970 }
7071
7172 auto result = 0 ;
72- if ((result = uv_process_kill (request. get () , signum)) < 0 )
73+ if ((result = uv_process_kill (request, signum)) < 0 )
7374 {
7475 cbFailure (hx::asys::libuv::uv_err_to_enum (result));
7576 }
@@ -81,9 +82,9 @@ void hx::asys::libuv::system::LibuvChildProcess::sendSignal(hx::EnumBase signal,
8182
8283void hx::asys::libuv::system::LibuvChildProcess::exitCode (Dynamic cbSuccess, Dynamic cbFailure)
8384{
84- if (currentExitCode. has_value ())
85+ if (currentExitCode-> has_value ())
8586 {
86- cbSuccess (static_cast <int >(currentExitCode. value ()));
87+ cbSuccess (static_cast <int >(currentExitCode-> value ()));
8788 }
8889 else
8990 {
@@ -95,7 +96,7 @@ void hx::asys::libuv::system::LibuvChildProcess::close(Dynamic cbSuccess, Dynami
9596{
9697 closeCallback = cbSuccess.mPtr ;
9798
98- uv_close (reinterpret_cast <uv_handle_t *>(request. get () ), [](uv_handle_t * handle) {
99+ uv_close (reinterpret_cast <uv_handle_t *>(request), [](uv_handle_t * handle) {
99100 auto gcZone = hx::AutoGCZone ();
100101 auto process = std::unique_ptr<hx::RootedObject<hx::asys::libuv::system::LibuvChildProcess>>(reinterpret_cast <hx::RootedObject<hx::asys::libuv::system::LibuvChildProcess>*>(handle->data ));
101102 auto callback = Dynamic (process->rooted ->closeCallback );
0 commit comments