diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-06-04 10:47:56 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-06-04 11:01:31 +0900 |
| commit | 3d2d9f8a9b30e5828a34a27ecb606d173b46b4c5 (patch) | |
| tree | 92dd52cfeb4bbeff638f497fcd8cfdabd2042d8a | |
| parent | 07129c76d9bfa579142980c6c0e78096abd86d25 (diff) | |
| download | mruby-3d2d9f8a9b30e5828a34a27ecb606d173b46b4c5.tar.gz mruby-3d2d9f8a9b30e5828a34a27ecb606d173b46b4c5.zip | |
Add explicit cast to `DROP_PRECISION` macro in `rtional.c`.
| -rw-r--r-- | mrbgems/mruby-rational/src/rational.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index 97f1fa68b..676a1dc82 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -91,9 +91,9 @@ rational_s_new(mrb_state *mrb, mrb_value self) mrb_get_args(mrb, "ii", &numerator, &denominator); #else -#define DROP_PRECISION(cond, num, denom) \ +#define DROP_PRECISION(f, num, denom) \ do { \ - while (cond) { \ + while (f < (mrb_float)MRB_INT_MIN || f > (mrb_float)MRB_INT_MAX) { \ num /= 2; \ denom /= 2; \ } \ @@ -111,7 +111,7 @@ rational_s_new(mrb_state *mrb, mrb_value self) else { mrb_float denomf = mrb_to_flo(mrb, denomv); - DROP_PRECISION(denomf < MRB_INT_MIN || denomf > MRB_INT_MAX, numerator, denomf); + DROP_PRECISION(denomf, numerator, denomf); denominator = (mrb_int)denomf; } } @@ -124,11 +124,11 @@ rational_s_new(mrb_state *mrb, mrb_value self) else { mrb_float denomf = mrb_to_flo(mrb, denomv); - DROP_PRECISION(denomf < MRB_INT_MIN || denomf > MRB_INT_MAX, numf, denomf); + DROP_PRECISION(denomf, numf, denomf); denominator = (mrb_int)denomf; } - DROP_PRECISION(numf < MRB_INT_MIN || numf > MRB_INT_MAX, numf, denominator); + DROP_PRECISION(numf, numf, denominator); numerator = (mrb_int)numf; } #endif @@ -152,7 +152,7 @@ rational_to_i(mrb_state *mrb, mrb_value self) { struct mrb_rational *p = rational_ptr(mrb, self); if (p->denominator == 0) { - mrb_raise(mrb, mrb_exc_get(mrb, "StandardError"), "divided by 0"); + mrb_raise(mrb, mrb->eStandardError_class, "divided by 0"); } return mrb_fixnum_value(p->numerator / p->denominator); } |
