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`).
This commit is contained in:
Nobuyoshi Nakada 2022-08-07 00:02:38 +09:00
parent f245b425af
commit e545cfad20
No known key found for this signature in database
GPG Key ID: 7CD2805BFA3770C6

View File

@ -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)