diff --git a/ChangeLog b/ChangeLog index 555deb38e8..1392993f89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ Mon Aug 3 13:05:22 2009 Nobuyoshi Nakada * array.c (rb_ary_{permutation,combination,product}): must not use ary_discard on strings. +Mon Aug 3 06:43:25 2009 Yukihiro Matsumoto + + * numeric.c (flo_hash): normalize -0.0 to 0.0. [ruby-core:24577] + Mon Aug 3 00:32:00 2009 Nobuyoshi Nakada * random.c (rb_random_int): arguments have to be converted to diff --git a/numeric.c b/numeric.c index 3330e26933..57e420bb86 100644 --- a/numeric.c +++ b/numeric.c @@ -913,6 +913,8 @@ flo_hash(VALUE num) int hash; d = RFLOAT_VALUE(num); + /* normalize -0.0 to 0.0 */ + if (d == 0.0) d = 0.0; hash = rb_memhash(&d, sizeof(d)); return INT2FIX(hash); }