diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | numeric.c | 2 |
2 files changed, 4 insertions, 2 deletions
@@ -1,4 +1,6 @@ -Fri Apr 27 12:54:35 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> +Fri Apr 27 17:05:41 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * numeric.c (int_pow): bugfix of overflow detection. * numeric.c (int_pow): rb_big_pow() may return other than Bignum. @@ -2283,7 +2283,7 @@ int_pow(long x, unsigned long y) } { long xz = x * z; - if (xz < z || xz < x || !POSFIXABLE(xz)) { + if (!POSFIXABLE(xz) || xz / x != z) { goto bignum; } z = xz; |