diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | string.c | 6 |
2 files changed, 6 insertions, 4 deletions
@@ -1,4 +1,6 @@ -Sat Sep 26 16:26:44 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> +Sat Sep 26 16:32:01 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * string.c (rb_hash_start): fixed shift width on 128bit platform. * include/ruby/intern.h (rb_hash_{start,uint32,uint,end}): fixed prototypes. @@ -2206,15 +2206,15 @@ rb_hash_start(st_index_t h) if (!hashseed_init) { hashseed = rb_genrand_int32(); #if SIZEOF_VALUE*CHAR_BIT > 4*8 - hashseed <<= 4*8; + hashseed <<= 32; hashseed |= rb_genrand_int32(); #endif #if SIZEOF_VALUE*CHAR_BIT > 8*8 - hashseed <<= 8*8; + hashseed <<= 32; hashseed |= rb_genrand_int32(); #endif #if SIZEOF_VALUE*CHAR_BIT > 12*8 - hashseed <<= 12*8; + hashseed <<= 32; hashseed |= rb_genrand_int32(); #endif hashseed_init = 1; |