summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/src/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-io/src/io.c')
-rw-r--r--mrbgems/mruby-io/src/io.c11
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);