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/