summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/src
diff options
context:
space:
mode:
authorYusuke Endoh <[email protected]>2017-12-12 00:47:56 +0900
committerYusuke Endoh <[email protected]>2017-12-12 00:47:56 +0900
commitd96b2c9a7624b86951bb7270e142ff05d6023629 (patch)
tree2f37eaadc9fb7770f16a5bd45d97e4b711f03364 /mrbgems/mruby-io/src
parent85fc9b88d0eba4e2e0313e9091e540fe570ad39b (diff)
downloadmruby-d96b2c9a7624b86951bb7270e142ff05d6023629.tar.gz
mruby-d96b2c9a7624b86951bb7270e142ff05d6023629.zip
Support MRB_WITHOUT_FLOAT to mruby-io and mruby-pack
Diffstat (limited to 'mrbgems/mruby-io/src')
-rw-r--r--mrbgems/mruby-io/src/io.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c
index c3c2e0b5b..b3166b11b 100644
--- a/mrbgems/mruby-io/src/io.c
+++ b/mrbgems/mruby-io/src/io.c
@@ -682,7 +682,11 @@ mrb_io_sysseek(mrb_state *mrb, mrb_value io)
mrb_sys_fail(mrb, "sysseek");
}
if (pos > MRB_INT_MAX) {
+#ifndef MRB_WITHOUT_FLOAT
return mrb_float_value(mrb, (mrb_float)pos);
+#else
+ mrb_raise(mrb, E_IO_ERROR, "sysseek reached too far for MRB_WITHOUT_FLOAT");
+#endif
} else {
return mrb_fixnum_value(pos);
}
@@ -765,10 +769,12 @@ time2timeval(mrb_state *mrb, mrb_value time)
t.tv_usec = 0;
break;
+#ifndef MRB_WITHOUT_FLOAT
case MRB_TT_FLOAT:
t.tv_sec = (time_t)mrb_float(time);
t.tv_usec = (mrb_float(time) - t.tv_sec) * 1000000.0;
break;
+#endif
default:
mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class");