diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-11-19 03:12:42 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-11-19 22:49:50 +0900 |
| commit | 996417cabfd4f9422ab00530874837e2cf6a2cf6 (patch) | |
| tree | 516510b9ff952ff59b940abee3a5f5a20daf12ad /src | |
| parent | 09abdcb5e899eb0e48b9ed11e93820eac8c511e4 (diff) | |
| download | mruby-996417cabfd4f9422ab00530874837e2cf6a2cf6.tar.gz mruby-996417cabfd4f9422ab00530874837e2cf6a2cf6.zip | |
integer range check was moved to mrb_flo_to_fixnum(); ref #3025
Diffstat (limited to 'src')
| -rw-r--r-- | src/numeric.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/numeric.c b/src/numeric.c index 41820ff5c..bd90f6168 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -964,7 +964,12 @@ mrb_flo_to_fixnum(mrb_state *mrb, mrb_value x) if (isnan(d)) { mrb_raise(mrb, E_FLOATDOMAIN_ERROR, "NaN"); } - z = (mrb_int)d; + if (FIXABLE(d)) { + z = (mrb_int)d; + } + else { + mrb_raisef(mrb, E_ARGUMENT_ERROR, "number (%S) too big for integer", x); + } } return mrb_fixnum_value(z); } |
