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

ruby-changes:4028

From: ko1@a...
Date: Sun, 17 Feb 2008 14:09:04 +0900 (JST)
Subject: [ruby-changes:4028] akr - Ruby:r15518 (trunk): * string.c (str_strlen): rb_enc_strlen doesn't fail.

akr	2008-02-17 14:08:43 +0900 (Sun, 17 Feb 2008)

  New Revision: 15518

  Modified files:
    trunk/ChangeLog
    trunk/string.c

  Log:
    * string.c (str_strlen): rb_enc_strlen doesn't fail.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=15518&r2=15517&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15518&r2=15517&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15517)
+++ ChangeLog	(revision 15518)
@@ -1,3 +1,7 @@
+Sun Feb 17 14:07:24 2008  Tanaka Akira  <akr@f...>
+
+	* string.c (str_strlen): rb_enc_strlen doesn't fail.
+
 Sun Feb 17 13:03:48 2008  Tanaka Akira  <akr@f...>
 
 	* string.c (str_sublen): use rb_enc_strlen.
Index: string.c
===================================================================
--- string.c	(revision 15517)
+++ string.c	(revision 15518)
@@ -622,7 +622,6 @@
 static long
 str_strlen(VALUE str, rb_encoding *enc)
 {
-    long len;
     const char *p, *e;
 
     if (single_byte_optimizable(str)) return RSTRING_LEN(str);
@@ -632,7 +631,7 @@
 #ifdef NONASCII_MASK
     if (ENC_CODERANGE(str) == ENC_CODERANGE_VALID &&
         enc == rb_utf8_encoding()) {
-        len = 0;
+        long len = 0;
 	if (sizeof(long) * 2 < e - p) {
 	    const unsigned long *s, *t;
 	    const VALUE lowbits = sizeof(unsigned long) - 1;
@@ -661,13 +660,8 @@
 	}
 	return len;
     }
-    else
 #endif
-    len = rb_enc_strlen(p, e, enc);
-    if (len < 0) {
-	rb_raise(rb_eArgError, "invalid mbstring sequence");
-    }
-    return len;
+    return rb_enc_strlen(p, e, enc);
 }
 
 /*

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

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