ruby-changes:9296
From: yugui <ko1@a...>
Date: Wed, 17 Dec 2008 15:19:54 +0900 (JST)
Subject: [ruby-changes:9296] Ruby:r20834 (ruby_1_9_1): merges r20804 from trunk into ruby_1_9_1.
yugui 2008-12-17 15:18:56 +0900 (Wed, 17 Dec 2008) New Revision: 20834 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20834 Log: merges r20804 from trunk into ruby_1_9_1. * string.c (rb_str_hash): gets rid of collisions between different encoding strings. [ruby-core:20526] Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/string.c Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 20833) +++ ruby_1_9_1/ChangeLog (revision 20834) @@ -1,3 +1,8 @@ +Wed Dec 17 11:01:35 2008 Nobuyoshi Nakada <nobu@r...> + + * string.c (rb_str_hash): gets rid of collisions between differen + encoding strings. [ruby-core:20526] + Tue Dec 16 22:55:11 2008 NAKAMURA Usaku <usa@r...> * bin/testrb: set $0. Index: ruby_1_9_1/string.c =================================================================== --- ruby_1_9_1/string.c (revision 20833) +++ ruby_1_9_1/string.c (revision 20834) @@ -2014,7 +2014,11 @@ int rb_str_hash(VALUE str) { - return rb_memhash((const void *)RSTRING_PTR(str), RSTRING_LEN(str)); + int e = ENCODING_GET(str); + if (e) { + if (rb_enc_str_asciionly_p(str)) e = 0; + } + return rb_memhash((const void *)RSTRING_PTR(str), RSTRING_LEN(str)) ^ e; } int -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/