summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-06-20 21:25:20 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-06-20 21:25:20 +0000
commitd73d3a743b78ed3532abb9ae97f0b4300963b15f (patch)
tree0a48f309e93ef1dde322563964d2268cbc3bd47a /process.c
parent06feb7b05721d1f92a90042fd4fbb5c1798d88f4 (diff)
* process.c (rb_execarg_fixup): take a VALUE argument instead of
struct rb_execarg. * internal.h (rb_execarg_fixup): follow the definition change. * io.c (pipe_open): follow rb_execarg_fixup change. * ext/pty/pty.c (establishShell): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r--process.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/process.c b/process.c
index 68b850ab44..977226d29f 100644
--- a/process.c
+++ b/process.c
@@ -2105,8 +2105,9 @@ fill_envp_buf_i(st_data_t st_key, st_data_t st_val, st_data_t arg)
static long run_exec_dup2_tmpbuf_size(long n);
void
-rb_execarg_fixup(struct rb_execarg *e)
+rb_execarg_fixup(VALUE execarg_obj)
{
+ struct rb_execarg *e = rb_execarg_get(execarg_obj);
VALUE unsetenv_others, envopts;
VALUE ary;
@@ -2173,19 +2174,13 @@ rb_execarg_fixup(struct rb_execarg *e)
}
*/
}
+ RB_GC_GUARD(execarg_obj);
}
void
rb_exec_arg_fixup(struct rb_exec_arg *e)
{
- rb_execarg_fixup(rb_execarg_get(e->execarg_obj));
-}
-
-static void
-rb_exec_arg_prepare(struct rb_execarg *earg, int argc, VALUE *argv)
-{
- rb_execarg_init(argc, argv, TRUE, earg);
- rb_execarg_fixup(earg);
+ rb_execarg_fixup(e->execarg_obj);
}
static int rb_exec_without_timer_thread(const struct rb_execarg *e, char *errmsg, size_t errmsg_buflen);
@@ -2251,7 +2246,7 @@ rb_f_exec(int argc, VALUE *argv)
execarg_obj = rb_execarg_new(argc, argv, TRUE);
earg = rb_execarg_get(execarg_obj);
- rb_execarg_fixup(earg);
+ rb_execarg_fixup(execarg_obj);
fail_str = earg->use_shell ? earg->invoke.sh.shell_script : earg->invoke.cmd.command_name;
#ifdef __MacOS_X__
@@ -3543,7 +3538,7 @@ rb_spawn_internal(int argc, VALUE *argv, char *errmsg, size_t errmsg_buflen)
execarg_obj = rb_execarg_new(argc, argv, TRUE);
earg = rb_execarg_get(execarg_obj);
- rb_execarg_fixup(earg);
+ rb_execarg_fixup(execarg_obj);
ret = rb_spawn_process(earg, errmsg, errmsg_buflen);
RB_GC_GUARD(execarg_obj);
return ret;
@@ -3882,7 +3877,7 @@ rb_f_spawn(int argc, VALUE *argv)
execarg_obj = rb_execarg_new(argc, argv, TRUE);
earg = rb_execarg_get(execarg_obj);
- rb_execarg_fixup(earg);
+ rb_execarg_fixup(execarg_obj);
fail_str = earg->use_shell ? earg->invoke.sh.shell_script : earg->invoke.cmd.command_name;
pid = rb_spawn_process(earg, errmsg, sizeof(errmsg));