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/