From 9ee4575ea418992d3a03eb7065d31159bb51fb72 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 3 Jun 2012 14:53:13 +0000 Subject: * include/ruby/intern.h (rb_exec_arg): remove argc and argv fields. add use_shell, argv_str and argv_buf fields. * process.c (rb_proc_exec_e): don't split shell command line arguments here to avoid memory allocation in a child process. (rb_exec_fillarg): split shell command line arguments here. (proc_exec_v): takes argv_str argument instead of argv. (rb_proc_exec_ne): removed. (rb_proc_exec_n): removed. (rb_run_exec_options_err): don't initialize the removed fields. (rb_exec_err): don't initialize the removed fields. call proc_exec_v directly instead of rb_proc_exec_ne. (rb_spawn_process): use use_shell field. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/intern.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include/ruby') diff --git a/include/ruby/intern.h b/include/ruby/intern.h index 693e52b5bd..e963d99b06 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -592,12 +592,13 @@ VALUE rb_sym_all_symbols(void); void rb_last_status_set(int status, rb_pid_t pid); VALUE rb_last_status_get(void); struct rb_exec_arg { - int argc; - VALUE *argv; const char *prog; VALUE options; VALUE redirect_fds; VALUE progname; + int use_shell; + VALUE argv_str; + VALUE argv_buf; VALUE envp_str; VALUE envp_buf; }; -- cgit v1.2.3