mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
FIXABLE() may work wrong on MRB_INT64; fix #2909
This commit is contained in:
+2
-1
@@ -55,7 +55,8 @@ num_pow(mrb_state *mrb, mrb_value x)
|
||||
mrb_get_args(mrb, "o", &y);
|
||||
yv = mrb_to_flo(mrb, y);
|
||||
d = pow(mrb_to_flo(mrb, x), yv);
|
||||
if (mrb_fixnum_p(x) && mrb_fixnum_p(y) && FIXABLE(d) && yv > 0)
|
||||
if (mrb_fixnum_p(x) && mrb_fixnum_p(y) && FIXABLE(d) && yv > 0 &&
|
||||
(d < 0 || (d > 0 && (mrb_int)d > 0)))
|
||||
return mrb_fixnum_value((mrb_int)d);
|
||||
return mrb_float_value(mrb, d);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user