diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | numeric.c | 2 |
2 files changed, 5 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Tue Sep 5 05:56:51 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * numeric.c (flo_hash): improve collision. fixed: [ruby-dev:29352] + Tue Sep 5 05:49:41 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> * file.c (path_check_0): check if sticky bit is set on parent @@ -870,7 +870,7 @@ flo_hash(num) if (d == 0) d = fabs(d); c = (char*)&d; for (hash=0, i=0; i<sizeof(double);i++) { - hash += c[i] * 971; + hash = (hash * 971) ^ (unsigned char)c[i]; } if (hash < 0) hash = -hash; return INT2FIX(hash); |