summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authorglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-22 08:37:46 +0000
committerglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-22 08:37:46 +0000
commitf775a27bd3a8d0077eec5aebd16a7caa716f0410 (patch)
tree0d17ffb75414153ebbf847e8051acbd64b1f3611 /string.c
parent265de6677c067612615c1f1438f349fb05a5557c (diff)
* string.c (rb_str_each_char_size): performance implement by
using rb_str_length(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/string.c b/string.c
index 1d784e3ef7..e5d04cddc6 100644
--- a/string.c
+++ b/string.c
@@ -6501,16 +6501,7 @@ rb_str_bytes(VALUE str)
static VALUE
rb_str_each_char_size(VALUE str, VALUE args, VALUE eobj)
{
- long len = RSTRING_LEN(str);
- if (!single_byte_optimizable(str)) {
- const char *ptr = RSTRING_PTR(str);
- rb_encoding *enc = rb_enc_get(str);
- const char *end_ptr = ptr + len;
- for (len = 0; ptr < end_ptr; ++len) {
- ptr += rb_enc_mbclen(ptr, end_ptr, enc);
- }
- }
- return LONG2FIX(len);
+ return rb_str_length(str);
}
static VALUE