diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-02-17 05:08:43 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-02-17 05:08:43 +0000 |
commit | 4aa0c1d98e86bcca4fb74d562414411e2156ee2d (patch) | |
tree | 0bba92c92287783b54c383ea08684dcd12e0b024 /string.c | |
parent | cd50451ec7fb0c4a0c6d47eb1f696c334f9f5a93 (diff) | |
download | ruby-4aa0c1d98e86bcca4fb74d562414411e2156ee2d.tar.gz ruby-4aa0c1d98e86bcca4fb74d562414411e2156ee2d.tar.xz ruby-4aa0c1d98e86bcca4fb74d562414411e2156ee2d.zip |
* string.c (str_strlen): rb_enc_strlen doesn't fail.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 10 |
1 files changed, 2 insertions, 8 deletions
@@ -622,7 +622,6 @@ rb_enc_strlen(const char *p, const char *e, rb_encoding *enc) 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 @@ str_strlen(VALUE str, rb_encoding *enc) #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 @@ str_strlen(VALUE str, rb_encoding *enc) } 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); } /* |