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

ruby-changes:14023

From: nobu <ko1@a...>
Date: Wed, 18 Nov 2009 10:17:45 +0900 (JST)
Subject: [ruby-changes:14023] Ruby:r25833 (trunk): * string.c (str_utf8_nth): no count_utf8_lead_bytes_with_word

nobu	2009-11-18 10:17:11 +0900 (Wed, 18 Nov 2009)

  New Revision: 25833

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

  Log:
    * string.c (str_utf8_nth): no count_utf8_lead_bytes_with_word
      optimization for short string.  [ruby-core:26787]
    
    * string.c (str_utf8_offset): str_utf8_nth never return NULL.

  Modified files:
    trunk/ChangeLog
    trunk/string.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 25832)
+++ ChangeLog	(revision 25833)
@@ -1,3 +1,10 @@
+Wed Nov 18 10:17:09 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* string.c (str_utf8_nth): no count_utf8_lead_bytes_with_word
+	  optimization for short string.  [ruby-core:26787]
+
+	* string.c (str_utf8_offset): str_utf8_nth never return NULL.
+
 Wed Nov 18 10:12:34 2009  Shugo Maeda  <shugo@r...>
 
 	* vm_method.c (rb_undef): should raise TypeError if klass is nil.
Index: string.c
===================================================================
--- string.c	(revision 25832)
+++ string.c	(revision 25833)
@@ -1468,7 +1468,7 @@
 static char *
 str_utf8_nth(const char *p, const char *e, long nth)
 {
-    if ((int)SIZEOF_VALUE * 2 < nth) {
+    if ((int)SIZEOF_VALUE < e - p && (int)SIZEOF_VALUE * 2 < nth) {
 	const VALUE *s, *t;
 	const VALUE lowbits = sizeof(VALUE) - 1;
 	s = (const VALUE*)(~lowbits & ((VALUE)p + lowbits));
@@ -1483,7 +1483,6 @@
 	} while (s < t && (int)sizeof(VALUE) <= nth);
 	p = (char *)s;
     }
-    if (p > e) return 0;
     while (p < e) {
 	if (is_utf8_lead_byte(*p)) {
 	    if (nth == 0) break;
@@ -1498,7 +1497,6 @@
 str_utf8_offset(const char *p, const char *e, long nth)
 {
     const char *pp = str_utf8_nth(p, e, nth);
-    if (!pp) return e - p;
     return pp - p;
 }
 #endif

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

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