diff options
Diffstat (limited to 'mrbgems/mruby-io/src/io.c')
| -rw-r--r-- | mrbgems/mruby-io/src/io.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c index 234d7b1fc..8261cf998 100644 --- a/mrbgems/mruby-io/src/io.c +++ b/mrbgems/mruby-io/src/io.c @@ -169,7 +169,7 @@ mrb_io_mode_to_flags(mrb_state *mrb, mrb_value mode) } else { int flags = 0; - mrb_int flags0 = mrb_int(mrb, mode); + mrb_int flags0 = mrb_as_int(mrb, mode); switch (flags0 & MRB_O_ACCMODE) { case MRB_O_RDONLY: @@ -363,7 +363,7 @@ mrb_io_s_popen_args(mrb_state *mrb, mrb_value klass, NULL, }; - mrb_get_args(mrb, "z|o:", cmd, &mode, &kw); + mrb_get_args(mrb, "zo:", cmd, &mode, &kw); *flags = mrb_io_mode_to_flags(mrb, mode); *doexec = (strcmp("-", *cmd) != 0); @@ -397,6 +397,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) ofd[0] = INVALID_HANDLE_VALUE; ofd[1] = INVALID_HANDLE_VALUE; + mrb->c->ci->mid = 0; io = mrb_io_s_popen_args(mrb, klass, &cmd, &flags, &doexec, &opt_in, &opt_out, &opt_err); @@ -476,6 +477,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) int pw[2] = { -1, -1 }; int saved_errno; + mrb->c->ci->mid = 0; io = mrb_io_s_popen_args(mrb, klass, &cmd, &flags, &doexec, &opt_in, &opt_out, &opt_err); @@ -837,6 +839,7 @@ static mrb_value mrb_io_s_sysclose(mrb_state *mrb, mrb_value klass) { mrb_int fd; + mrb->c->ci->mid = 0; mrb_get_args(mrb, "i", &fd); if (close((int)fd) == -1) { mrb_sys_fail(mrb, "close"); @@ -1415,7 +1418,7 @@ mrb_io_sync(mrb_state *mrb, mrb_value self) static off_t value2off(mrb_state *mrb, mrb_value offv) { - return (off_t)mrb_int(mrb, offv); + return (off_t)mrb_as_int(mrb, offv); } /* @@ -1475,6 +1478,7 @@ mrb_io_bufread(mrb_state *mrb, mrb_value self) mrb_value str; mrb_int len; + mrb->c->ci->mid = 0; mrb_get_args(mrb, "Si", &str, &len); mrb_assert(RSTRING_LEN(str) > 0); mrb_assert(RSTRING_PTR(str) != NULL); @@ -1491,6 +1495,7 @@ mrb_io_readchar(mrb_state *mrb, mrb_value self) unsigned char c; #endif + mrb->c->ci->mid = 0; mrb_get_args(mrb, "S", &buf); mrb_assert(RSTRING_LEN(buf) > 0); mrb_assert(RSTRING_PTR(buf) != NULL); |
