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

ruby-changes:12629

From: naruse <ko1@a...>
Date: Sat, 1 Aug 2009 05:45:28 +0900 (JST)
Subject: [ruby-changes:12629] Ruby:r24342 (trunk): Can't use singlebyte optimization when the replacement is multibyte.

naruse	2009-08-01 05:36:04 +0900 (Sat, 01 Aug 2009)

  New Revision: 24342

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24342

  Log:
     Can't use singlebyte optimization when the replacement is multibyte. [ruby-core:24612]
     * string.c (tr_trans): can't use singlebyte optimization when
              the replacement is multibyte. [ruby-core:24612]

  Modified files:
    trunk/ChangeLog
    trunk/string.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24341)
+++ ChangeLog	(revision 24342)
@@ -1,3 +1,8 @@
+Sat Aug  1 05:18:36 2009  NARUSE, Yui  <naruse@r...>
+
+	* string.c (tr_trans): can't use singlebyte optimization when
+	  the replacement is multibyte. [ruby-core:24612]
+
 Fri Jul 31 18:01:34 2009  NAKAMURA Usaku  <usa@r...>
 
 	* lib/securerandom.rb (SecureRandom.random_bytes): return string should
Index: string.c
===================================================================
--- string.c	(revision 24341)
+++ string.c	(revision 24342)
@@ -4871,7 +4871,8 @@
 	    if (r == errc) r = trrepl.now;
 	    if (c < 256) {
 		trans[c] = r;
-		if (r > 255) singlebyte = 0;
+		if (r > 255 || (r > 127 && rb_enc_mbmaxlen(enc) != 1))
+		    singlebyte = 0;
 	    }
 	    else {
 		if (!hash) hash = rb_hash_new();

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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