Skip to content

Commit 179ce1c

Browse files
committed
Use standard pointers for now
1 parent 9723c9e commit 179ce1c

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

src/hx/libs/asys/libuv/system/LibuvChildProcess.cpp

+11-10
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66
#include "LibuvChildProcess.h"
77

88
hx::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

2021
hx::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

8283
void 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);

src/hx/libs/asys/libuv/system/LibuvChildProcess.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ namespace hx::asys::libuv::system
1313
class LibuvChildProcess final : public hx::asys::system::ChildProcess_obj
1414
{
1515
public:
16-
std::unique_ptr<uv_process_t> request;
17-
std::unique_ptr<uv_process_options_t> options;
18-
std::vector<char*> arguments;
19-
std::vector<char*> environment;
20-
std::vector<uv_stdio_container_t> containers;
21-
std::optional<int64_t> currentExitCode;
16+
uv_process_t* request;
17+
uv_process_options_t* options;
18+
std::vector<char*>* arguments;
19+
std::vector<char*>* environment;
20+
std::vector<uv_stdio_container_t>* containers;
21+
std::optional<int64_t>* currentExitCode;
2222

2323
Dynamic exitCallback;
2424
Dynamic closeCallback;

0 commit comments

Comments
 (0)