summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-06-03 14:53:13 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-06-03 14:53:13 +0000
commit9ee4575ea418992d3a03eb7065d31159bb51fb72 (patch)
tree2fe4d3fc7942c03145b167f4775e97fcd7708106 /include
parentd70af743bf5d9d3a83d1b1a3ddfc0eb88ec93487 (diff)
* 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
Diffstat (limited to 'include')
-rw-r--r--include/ruby/intern.h5
1 files changed, 3 insertions, 2 deletions
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;
};