[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]