From 0980fe7903b253e8a67a45eea6bd9856d0d85cf0 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 20 May 2009 04:44:36 +0000 Subject: * encoding.c (rb_enc_fast_mbclen): faster mbclen for strings known to be valid. * string.c (enc_strlen): coderange specified version of rb_enc_strlen(). use rb_enc_fast_mbclen() if coderange is 7bit or valid. * string.c (str_gsub): use rb_enc_fast_mbclen(). * string.c (rb_str_reverse, rb_str_split_m, rb_str_each_char, scan_once): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- encoding.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'encoding.c') diff --git a/encoding.c b/encoding.c index 223eace375..4ef45cd65e 100644 --- a/encoding.c +++ b/encoding.c @@ -726,6 +726,12 @@ rb_obj_encoding(VALUE obj) return rb_enc_from_encoding(enc); } +int +rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc) +{ + return ONIGENC_MBC_ENC_LEN(enc, (UChar*)p, (UChar*)e); +} + int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc) { -- cgit v1.2.3