From 3f59d3c92a10cef94fa470522a95f7c8fdd8c0ff Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 20 Jan 2008 04:06:03 +0000 Subject: * string.c (rb_str_each_char): performance improvement, and stop if shortened in the block. [ruby-dev:33189] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'string.c') diff --git a/string.c b/string.c index ba46a7b9c..9242877a3 100644 --- a/string.c +++ b/string.c @@ -4590,11 +4590,22 @@ rb_str_each_byte(VALUE str) static VALUE rb_str_each_char(VALUE str) { - int i, len = str_strlen(str, 0); + int i, len, n; + const char *ptr, *s; + rb_encoding *enc; RETURN_ENUMERATOR(str, 0, 0); - for (i=0; i