* io.c (pipe_open, rb_io_s_popen): clear temporary object to release
and prevent from GC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
50bcd83621
commit
e477c919db
@ -1,3 +1,8 @@
|
||||
Wed Jan 16 18:03:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* io.c (pipe_open, rb_io_s_popen): clear temporary object to release
|
||||
and prevent from GC.
|
||||
|
||||
Wed Jan 16 17:55:07 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* numeric.c (fix_quo): typo. a patch from Shin-ichiro HARA
|
||||
|
2
io.c
2
io.c
@ -3626,6 +3626,7 @@ pipe_open(const char *cmd, int argc, VALUE *argv, const char *mode)
|
||||
exename = cmd;
|
||||
cmdbuf = rb_str_tmp_new(rb_w32_argv_size(args));
|
||||
cmd = rb_w32_join_argv(RSTRING_PTR(cmdbuf), args);
|
||||
rb_str_resize(argbuf, 0);
|
||||
}
|
||||
while ((pid = rb_w32_pipe_exec(cmd, exename, openmode, &fd, &write_fd)) == -1) {
|
||||
/* exec failed */
|
||||
@ -3775,6 +3776,7 @@ rb_io_s_popen(int argc, VALUE *argv, VALUE klass)
|
||||
tmp = rb_ary_dup(tmp);
|
||||
RBASIC(tmp)->klass = 0;
|
||||
port = pipe_open_v(RARRAY_LEN(tmp), RARRAY_PTR(tmp), mode);
|
||||
rb_ary_clear(tmp);
|
||||
}
|
||||
else {
|
||||
SafeStringValue(pname);
|
||||
|
Loading…
x
Reference in New Issue
Block a user