From 1623f4e77ea72e522415f4bde8d7a2bc49c315e1 Mon Sep 17 00:00:00 2001 From: naruse Date: Thu, 26 May 2016 16:51:49 +0000 Subject: [PATCH] * symbol.c (is_identchar): use ISDIGIT instead of rb_enc_isalnum. Though rb_enc_isalnum is encoding aware function, its argument here is *m, which is a single byte. Therefore ISDIGIT is faster. * symbol.c (is_special_global_name): ditto. * symbol.c (rb_enc_symname_type): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 10 ++++++++++ symbol.c | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 131e590ef6..e1809df46e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Fri May 27 01:00:36 2016 NARUSE, Yui + + * symbol.c (is_identchar): use ISDIGIT instead of rb_enc_isalnum. + Though rb_enc_isalnum is encoding aware function, its argument here + is *m, which is a single byte. Therefore ISDIGIT is faster. + + * symbol.c (is_special_global_name): ditto. + + * symbol.c (rb_enc_symname_type): ditto. + Fri May 27 00:39:40 2016 Nobuyoshi Nakada * include/ruby/ruby.h (rb_scan_args): add nul padding here to diff --git a/symbol.c b/symbol.c index b37be2f65b..facdb3ce24 100644 --- a/symbol.c +++ b/symbol.c @@ -28,7 +28,7 @@ static ID register_static_symid_str(ID, VALUE); #define REGISTER_SYMID(id, name) register_static_symid((id), (name), strlen(name), enc) #include "id.c" -#define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) +#define is_identchar(p,e,enc) (ISALNUM((unsigned char)*(p)) || (*(p)) == '_' || !ISASCII(*(p))) #define op_tbl_count numberof(op_tbl) STATIC_ASSERT(op_tbl_name_size, sizeof(op_tbl[0].name) == 3); @@ -177,11 +177,11 @@ is_special_global_name(const char *m, const char *e, rb_encoding *enc) } } else { - if (!rb_enc_isdigit(*m, enc)) return 0; + if (!ISDIGIT(*m)) return 0; do { if (!ISASCII(*m)) mb = 1; ++m; - } while (m < e && rb_enc_isdigit(*m, enc)); + } while (m < e && ISDIGIT(*m)); } return m == e ? mb + 1 : 0; } @@ -278,9 +278,9 @@ rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int a break; default: - type = rb_enc_isupper(*m, enc) ? ID_CONST : ID_LOCAL; + type = ISUPPER(*m) ? ID_CONST : ID_LOCAL; id: - if (m >= e || (*m != '_' && !rb_enc_isalpha(*m, enc) && ISASCII(*m))) { + if (m >= e || (*m != '_' && !ISALPHA(*m) && ISASCII(*m))) { if (len > 1 && *(e-1) == '=') { type = rb_enc_symname_type(name, len-1, enc, allowed_attrset); if (type != ID_ATTRSET) return ID_ATTRSET;