mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
numeric.c (mrb_float_to_integer): check for RangeError.
Otherwise flo_to_i raises FloatDomainError instead.
This commit is contained in:
@@ -1585,6 +1585,10 @@ mrb_float_to_integer(mrb_state *mrb, mrb_value x)
|
||||
if (!mrb_float_p(x)) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "non float value");
|
||||
}
|
||||
float f = mrb_float(x);
|
||||
if (isinf(f) || isnan(f)) {
|
||||
mrb_raisef(mrb, E_RANGE_ERROR, "float %f out of range", f);
|
||||
}
|
||||
return flo_to_i(mrb, x);
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user