diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-02-08 21:18:50 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-02-08 21:18:50 +0900 |
| commit | aa5b7fbd8091afea2c176ae1c402fb0ff34eca7e (patch) | |
| tree | 5c2826581385caf805e2d18c3aed92692ecc89e0 /mrbgems/mruby-rational | |
| parent | db1172b48cd5c3a21655267277ffb53f567dd4ef (diff) | |
| download | mruby-aa5b7fbd8091afea2c176ae1c402fb0ff34eca7e.tar.gz mruby-aa5b7fbd8091afea2c176ae1c402fb0ff34eca7e.zip | |
`i_gcd()` does not work for `MRB_INT_MIN`.
Diffstat (limited to 'mrbgems/mruby-rational')
| -rw-r--r-- | mrbgems/mruby-rational/src/rational.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index 9081c2eec..618ffa805 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -156,10 +156,10 @@ rational_new_i(mrb_state *mrb, mrb_int n, mrb_int d) if (d == 0) { rat_zerodiv(mrb); } - a = i_gcd(n, d); - if ((n == MRB_INT_MIN || d == MRB_INT_MIN) && a == -1) { + if (n == MRB_INT_MIN || d == MRB_INT_MIN) { rat_overflow(mrb); } + a = i_gcd(n, d); return rational_new(mrb, n/a, d/a); } |
