From e545cfad20eccf72f0b7d02660ceb56ec0f1dcf7 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sun, 7 Aug 2022 00:02:38 +0900 Subject: Stop using casted `rb_syswait` as `proc_syswait` The argument of `rb_syswait` is now `rb_pid_t` which may differ from `int`. Also it is an undefined behavior to take the result of casted void function (in `rb_protect`). --- process.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'process.c') diff --git a/process.c b/process.c index 0ba555562c..0e4dbc40f4 100644 --- a/process.c +++ b/process.c @@ -3773,16 +3773,12 @@ rb_exec_atfork(void* arg, char *errmsg, size_t errmsg_buflen) return rb_exec_async_signal_safe(arg, errmsg, errmsg_buflen); /* hopefully async-signal-safe */ } -#if SIZEOF_INT == SIZEOF_VALUE -#define proc_syswait (VALUE (*)(VALUE))rb_syswait -#else static VALUE proc_syswait(VALUE pid) { - rb_syswait((int)pid); + rb_syswait((rb_pid_t)pid); return Qnil; } -#endif static int move_fds_to_avoid_crash(int *fdp, int n, VALUE fds) -- cgit v1.2.1