Skip to content

Commit cf4ee12

Browse files
committed
fix: explicit conversions for getting uv handles
1 parent bae1d2f commit cf4ee12

File tree

4 files changed

+20
-23
lines changed

4 files changed

+20
-23
lines changed

src/poller.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@ class Poller {
2828
auto* loop = UvLoop(env);
2929

3030
poll->data = this;
31-
if (auto err = uv_poll_init_socket(loop, poll, fd); err != 0) {
31+
if (auto err = uv_poll_init_socket(loop, poll.get(), fd); err != 0) {
3232
return err;
3333
}
3434

3535
readable_timer->data = this;
36-
if (auto err = uv_timer_init(loop, readable_timer); err != 0) {
36+
if (auto err = uv_timer_init(loop, readable_timer.get()); err != 0) {
3737
return err;
3838
}
3939

4040
writable_timer->data = this;
41-
if (auto err = uv_timer_init(loop, writable_timer); err != 0) {
41+
if (auto err = uv_timer_init(loop, writable_timer.get()); err != 0) {
4242
return err;
4343
}
4444

@@ -72,7 +72,7 @@ class Poller {
7272

7373
if (timeout > 0) {
7474
[[maybe_unused]] auto err = uv_timer_start(
75-
readable_timer,
75+
readable_timer.get(),
7676
[](uv_timer_t* timer) {
7777
auto& poller = *reinterpret_cast<Poller*>(timer->data);
7878
poller.Trigger(UV_READABLE);
@@ -84,7 +84,7 @@ class Poller {
8484

8585
if (events == 0) {
8686
/* Only start polling if we were not polling already. */
87-
[[maybe_unused]] auto err = uv_poll_start(poll, UV_READABLE, Callback);
87+
[[maybe_unused]] auto err = uv_poll_start(poll.get(), UV_READABLE, Callback);
8888
assert(err == 0);
8989
}
9090

@@ -96,7 +96,7 @@ class Poller {
9696

9797
if (timeout > 0) {
9898
[[maybe_unused]] auto err = uv_timer_start(
99-
writable_timer,
99+
writable_timer.get(),
100100
[](uv_timer_t* timer) {
101101
auto& poller = *reinterpret_cast<Poller*>(timer->data);
102102
poller.Trigger(UV_WRITABLE);
@@ -110,7 +110,7 @@ class Poller {
110110
events on the socket in an edge-triggered fashion by making the
111111
file descriptor become ready for READING." */
112112
if (events == 0) {
113-
[[maybe_unused]] auto err = uv_poll_start(poll, UV_READABLE, Callback);
113+
[[maybe_unused]] auto err = uv_poll_start(poll.get(), UV_READABLE, Callback);
114114
assert(err == 0);
115115
}
116116

@@ -142,18 +142,18 @@ class Poller {
142142
void Trigger(uint32_t triggered) {
143143
events &= ~triggered;
144144
if (events == 0) {
145-
[[maybe_unused]] auto err = uv_poll_stop(poll);
145+
[[maybe_unused]] auto err = uv_poll_stop(poll.get());
146146
assert(err == 0);
147147
}
148148

149149
if ((triggered & UV_READABLE) != 0) {
150-
[[maybe_unused]] auto err = uv_timer_stop(readable_timer);
150+
[[maybe_unused]] auto err = uv_timer_stop(readable_timer.get());
151151
assert(err == 0);
152152
static_cast<T*>(this)->ReadableCallback();
153153
}
154154

155155
if ((triggered & UV_WRITABLE) != 0) {
156-
[[maybe_unused]] auto err = uv_timer_stop(writable_timer);
156+
[[maybe_unused]] auto err = uv_timer_stop(writable_timer.get());
157157
assert(err == 0);
158158
static_cast<T*>(this)->WritableCallback();
159159
}

src/util/trash.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ class Trash {
2929
reinterpret_cast<Trash*>(async->data)->Clear();
3030
};
3131

32-
[[maybe_unused]] auto err = uv_async_init(loop, async, clear);
32+
[[maybe_unused]] auto err = uv_async_init(loop, async.get(), clear);
3333
assert(err == 0);
3434

3535
/* Immediately unreference this handle in order to prevent the async
3636
callback from preventing the Node.js process to exit. */
37-
uv_unref(this->async);
37+
uv_unref(this->async.get_handle());
3838
}
3939

4040
/* Add given item to the trash, marking it for deletion next time the
@@ -47,7 +47,7 @@ class Trash {
4747
that calls are coalesced if they occur frequently. This is good
4848
news for us, since that means frequent additions do not cause
4949
unnecessary trash cycle operations. */
50-
[[maybe_unused]] auto err = uv_async_send(this->async);
50+
[[maybe_unused]] auto err = uv_async_send(this->async.get());
5151
assert(err == 0);
5252
}
5353

src/util/uvdelayed.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,22 @@ class UvDelayed {
1717
[[maybe_unused]] int32_t err = 0;
1818

1919
check->data = this;
20-
err = uv_check_init(loop, check);
20+
err = uv_check_init(loop, check.get());
2121
assert(err == 0);
2222

2323
idle->data = this;
24-
err = uv_idle_init(loop, idle);
24+
err = uv_idle_init(loop, idle.get());
2525
assert(err == 0);
2626
}
2727

2828
void Schedule() {
2929
[[maybe_unused]] int32_t err = 0;
3030

3131
/* Idle handle is needed to stop the event loop from blocking in poll. */
32-
err = uv_idle_start(idle, []([[maybe_unused]] uv_idle_t* idle) {});
32+
err = uv_idle_start(idle.get(), []([[maybe_unused]] uv_idle_t* idle) {});
3333
assert(err == 0);
3434

35-
err = uv_check_start(check, [](uv_check_t* check) {
35+
err = uv_check_start(check.get(), [](uv_check_t* check) {
3636
auto& immediate = *reinterpret_cast<UvDelayed*>(check->data);
3737
immediate.check.reset();
3838
immediate.idle.reset();

src/util/uvhandle.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,15 @@ class UvHandle : handle_ptr<T> {
3535
using handle_ptr<T>::reset;
3636
using handle_ptr<T>::operator->;
3737

38-
// NOLINTNEXTLINE(*-explicit-*)
39-
inline operator bool() {
38+
explicit operator bool() {
4039
return handle_ptr<T>::operator bool() && handle_ptr<T>::get()->type != 0;
4140
}
4241

43-
// NOLINTNEXTLINE(*-explicit-*)
44-
inline operator T*() {
42+
T* get() {
4543
return handle_ptr<T>::get();
4644
}
4745

48-
// NOLINTNEXTLINE(*-explicit-*)
49-
inline operator uv_handle_t*() {
46+
uv_handle_t* get_handle() {
5047
return reinterpret_cast<uv_handle_t*>(handle_ptr<T>::get());
5148
}
5249
};

0 commit comments

Comments
 (0)