From 14ec2c802d9ba09ba7e852136e184d0dc7f95ce4 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 9 Jun 2012 14:58:03 +0000 Subject: * process.c (rb_fork_err): rewrite a complex "if" statement. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ process.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7f5f66ffa3..b0ef5a5bcb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Jun 9 23:57:03 2012 Tanaka Akira + + * process.c (rb_fork_err): rewrite a complex "if" statement. + Sat Jun 9 23:44:29 2012 Tanaka Akira * process.c (before_exec_async_signal_safe): extracted from diff --git a/process.c b/process.c index f7348533b1..87e57078a0 100644 --- a/process.c +++ b/process.c @@ -2900,13 +2900,15 @@ rb_fork_err(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALU return pid; if (!pid) { struct chfunc_protect_t arg; + int ret; forked_child = 1; close(ep[0]); arg.chfunc = chfunc; arg.arg = charg; arg.errmsg = errmsg; arg.buflen = errmsg_buflen; - if (!(int)rb_protect(chfunc_protect, (VALUE)&arg, &state)) _exit(EXIT_SUCCESS); + ret = (int)rb_protect(chfunc_protect, (VALUE)&arg, &state); + if (!ret) _exit(EXIT_SUCCESS); send_child_error(ep[1], state, errmsg, errmsg_buflen); #if EXIT_SUCCESS == 127 _exit(EXIT_FAILURE); -- cgit v1.2.3