diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-25 15:43:46 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-25 15:44:59 +0900 |
| commit | efef4541aa97460b80618af369879881b376cc30 (patch) | |
| tree | 3282a575f5080cf6b5ed044d653a64ed1799560d | |
| parent | 23e5c08e310e9638846fb43bfef0be1bb259da49 (diff) | |
| download | mruby-efef4541aa97460b80618af369879881b376cc30.tar.gz mruby-efef4541aa97460b80618af369879881b376cc30.zip | |
Fix a bug for the case `frexp()` return `Infinity`.
| -rw-r--r-- | mrbgems/mruby-rational/src/rational.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index c5df52a08..0d317cc0f 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -183,6 +183,7 @@ static void float_decode_internal(mrb_state *mrb, mrb_float f, mrb_float *rf, int *n) { f = (mrb_float)frexp_rat(f, n); + if (isinf(f)) rat_overflow(mrb); f = (mrb_float)ldexp_rat(f, RAT_MANT_DIG); *n -= RAT_MANT_DIG; *rf = f; |
